Additional general functions

Name Description / comments
assert_or[<cond>;<err or fn>] Assert cond~1b, otherwise throw signal with err string or call fn[]
assert[<cond>;<err>] Assert cond~1b, otherwise throw signal with message "--- Assert [err] Failed"
assert_eq[<expected>;<got>;<err>] Assert lhs~rhs, otherwise throw signal with err message and differences
test[<name>;<expected>;<got>] Function for generating tests
fc[<vec>;<size>] Fill or cut
fmt[<string with %>; <list>] Dynamic formatting
ltrim[<string>] Trim leading spaces
rtrim[<string>] Trim trailing spaces
trim[<string>] Trim leading and trailing spaces
rcsv[<cols>;<sep>;<types>;<file>] CSV file loading
wcsv[<tbl>;<cols>;<sep>;<file>] CSV file write
peach[<fn>;<vec>] Call fn for each from vec in parallel
xpeach[<fn>;<vec>] Parallel each splits vec onto __cores__ - 1 pieces
con[&ldict1>;<dict2>] Concatenates two dicts, duplicate keys concatenates their values
differ[<list] Returns a boolean list indicating whеre consecutive pairs of items in x differ
lshift[<number>;<cnt>] Left shift number by cnt bits
rshift[<number>;<cnt>] Right shuft number by cnt bits
lrot[<number>;<cnt>] Left rotate number by cnt bits
.o.cell[<globvar>] Create cell to be used for synchronized access to a global variable from any task