The Lambda
class is a collection of methods to support functional
programming. It is ideally used with using Lambda
and then acts as an
extension to Iterable types.
On static platforms, working with the Iterable structure might be slower than performing the operations directly on known types, such as Array and List.
If the first argument to any of the methods is null, the result is unspecified.
See also:
Static methods
staticarray<A>(it:Iterable<A>):Array<A>
Creates an Array from Iterable it
.
If it
is an Array, this function returns a copy of it.
staticconcat<T>(a:Iterable<T>, b:Iterable<T>):Array<T>
Returns a new Array containing all elements of Iterable a
followed by
all elements of Iterable b
.
If a
or b
are null, the result is unspecified.
staticcount<A>(it:Iterable<A>, ?pred:(item:A) ‑> Bool):Int
Returns the number of elements in it
for which pred
is true, or the
total number of elements in it
if pred
is null.
This function traverses all elements.
staticexists<A>(it:Iterable<A>, f:(item:A) ‑> Bool):Bool
Tells if it
contains an element for which f
is true.
This function returns true as soon as an element is found for which a
call to f
returns true.
If no such element is found, the result is false.
If f
is null, the result is unspecified.
staticfilter<A>(it:Iterable<A>, f:(item:A) ‑> Bool):Array<A>
Returns a Array containing those elements of it
for which f
returned
true.
If it
is empty, the result is the empty Array even if f
is null.
Otherwise if f
is null, the result is unspecified.
staticfind<T>(it:Iterable<T>, f:(item:T) ‑> Bool):Null<T>
Returns the first element of it
for which f
is true.
This function returns as soon as an element is found for which a call to
f
returns true.
If no such element is found, the result is null.
If f
is null, the result is unspecified.
staticinlineflatMap<A, B>(it:Iterable<A>, f:(item:A) ‑> Iterable<B>):Array<B>
A composition of map and flatten.
The order of elements is preserved.
If f
is null, the result is unspecified.
staticinlineflatten<A>(it:Iterable<Iterable<A>>):Array<A>
Concatenate a list of iterables. The order of elements is preserved.
staticfold<A, B>(it:Iterable<A>, f:(item:A, result:B) ‑> B, first:B):B
Functional fold on Iterable it
, using function f
with start argument
first
.
If it
has no elements, the result is first
.
Otherwise the first element of it
is passed to f
alongside first
.
The result of that call is then passed to f
with the next element of
it
, and so on until it
has no more elements.
If it
or f
are null, the result is unspecified.
staticforeach<A>(it:Iterable<A>, f:(item:A) ‑> Bool):Bool
Tells if f
is true for all elements of it
.
This function returns false as soon as an element is found for which a
call to f
returns false.
If no such element is found, the result is true.
In particular, this function always returns true if it
is empty.
If f
is null, the result is unspecified.
statichas<A>(it:Iterable<A>, elt:A):Bool
Tells if it
contains elt
.
This function returns true as soon as an element is found which is equal
to elt
according to the ==
operator.
If no such element is found, the result is false.
staticindexOf<T>(it:Iterable<T>, v:T):Int
Returns the index of the first element v
within Iterable it
.
This function uses operator ==
to check for equality.
If v
does not exist in it
, the result is -1.
staticiter<A>(it:Iterable<A>, f:(item:A) ‑> Void):Void
Calls f
on all elements of it
, in order.
If f
is null, the result is unspecified.
staticlist<A>(it:Iterable<A>):List<A>
Creates a List form Iterable it
.
If it
is a List, this function returns a copy of it.