16. Functional programming library¶
The functional module implements a collection of high-order functions and patters to expose functional programming patters to Daslang.
All functions and symbols are in “functional” module, use require to get access to it.
require daslib/functional
16.1. Map, reduce¶
filter (src:iterator<auto(TT)> -const;blk:lambda<(what:TT const -&):bool> const) : auto
filter (src:iterator<auto(TT)> -const;blk:function<(what:TT const -&):bool> const) : auto
map (src:iterator<auto(TT)> -const;blk:lambda<(what:TT const -&):auto(QQ)> const) : auto
map (src:iterator<auto(TT)> -const;blk:function<(what:TT const -&):auto(QQ)> const) : auto
islice (src:iterator<auto(TT)> -const;start:int const;stop:int const) : auto
-
filter
(src: iterator<auto(TT)>; blk: lambda<(what:TT const):bool> const)¶
filter returns auto
argument |
argument type |
---|---|
src |
iterator<auto(TT)> |
blk |
lambda<(what:TT const):bool> const |
iterates over src and yields only those elements for which blk returns true filter with function
-
filter
(src: iterator<auto(TT)>; blk: function<(what:TT const):bool> const)
filter returns auto
argument |
argument type |
---|---|
src |
iterator<auto(TT)> |
blk |
function<(what:TT const):bool> const |
iterates over src and yields only those elements for which blk returns true filter with function
-
map
(src: iterator<auto(TT)>; blk: lambda<(what:TT const):auto(QQ)> const)¶
map returns auto
argument |
argument type |
---|---|
src |
iterator<auto(TT)> |
blk |
lambda<(what:TT const):auto(QQ)> const |
reduce value, any invokable
-
map
(src: iterator<auto(TT)>; blk: function<(what:TT const):auto(QQ)> const)
map returns auto
argument |
argument type |
---|---|
src |
iterator<auto(TT)> |
blk |
function<(what:TT const):auto(QQ)> const |
reduce value, any invokable
-
reduce
(it: iterator<auto(TT)> const; blk: lambda<(left:TT const;right:TT const):TT const> const)¶
reduce returns auto
argument |
argument type |
---|---|
it |
iterator<auto(TT)> const |
blk |
lambda<(left:TT const;right:TT const):TT const> const |
summ of all elements
-
reduce
(it: iterator<auto(TT)> const; blk: function<(left:TT const;right:TT const):TT const> const)
reduce returns auto
argument |
argument type |
---|---|
it |
iterator<auto(TT)> const |
blk |
function<(left:TT const;right:TT const):TT const> const |
summ of all elements
-
reduce
(it: iterator<auto(TT)> const; blk: block<(left:TT const;right:TT const):TT const> const)
reduce returns auto
argument |
argument type |
---|---|
it |
iterator<auto(TT)> const |
blk |
block<(left:TT const;right:TT const):TT const> const |
summ of all elements
-
sum
(it: iterator<auto(TT)> const)¶
sum returns auto
argument |
argument type |
---|---|
it |
iterator<auto(TT)> const |
iterates over it and yields the sum of all elements same as reduce(it, @(a,b) => a + b) any
-
any
(it: auto const)¶
any returns auto
argument |
argument type |
---|---|
it |
auto const |
iterates over it and yields true if any element is true all
-
all
(it: auto const)¶
all returns auto
argument |
argument type |
---|---|
it |
auto const |
iterates over it and yields true if all elements are true
-
cycle
(src: iterator<auto(TT)>)¶
cycle returns auto
argument |
argument type |
---|---|
src |
iterator<auto(TT)> |
endlessly iterates over src
-
islice
(src: iterator<auto(TT)>; start: int const; stop: int const)¶
islice returns auto
argument |
argument type |
---|---|
src |
iterator<auto(TT)> |
start |
int const |
stop |
int const |
iterates over src and yields only the elements in the range [start,stop) [[ value; value; value; …. count times ]]
-
repeat_ref
(value: auto(TT) const; total: int)¶
repeat_ref returns auto
argument |
argument type |
---|---|
value |
auto(TT) const |
total |
int |
yields value by reference count times [[ value; value; value; …. count times ]]
-
repeat
(value: auto(TT) const; count: int)¶
repeat returns auto
argument |
argument type |
---|---|
value |
auto(TT) const |
count |
int |
yields value count times
-
not
(x: auto const)¶
not returns auto
argument |
argument type |
---|---|
x |
auto const |
yeilds !x
-
echo
(x: auto; extra: string const)¶
echo returns auto
argument |
argument type |
---|---|
x |
auto |
extra |
string const |
prints contents of the string to the output, with extra string appended
-
flatten
(it: iterator<auto(TT)>)¶
flatten returns auto
argument |
argument type |
---|---|
it |
iterator<auto(TT)> |
iterates over it, than iterates over each element of each element of it and yields it
16.2. Queries¶
-
is_equal
(a: auto const; b: auto const)¶
is_equal returns auto
argument |
argument type |
---|---|
a |
auto const |
b |
auto const |
yields true if a and b are equal
-
is_not_equal
(a: auto const; b: auto const)¶
is_not_equal returns auto
argument |
argument type |
---|---|
a |
auto const |
b |
auto const |
yields true if a and b are not equal
16.3. Uncategorized¶
-
sorted
(arr: array<auto>)¶
sorted returns auto
argument |
argument type |
---|---|
arr |
array<auto> |
iterates over input and returns it sorted version
-
sorted
(it: iterator<auto(TT)>)
sorted returns auto
argument |
argument type |
---|---|
it |
iterator<auto(TT)> |
iterates over input and returns it sorted version