[Top]
|
Method map()
- Method
map
mixed map(mixed arr, void|mixed fun, mixed ... extra)
- Description
Applies fun to the elements in arr and collects the results.
arr is treated as a set of elements, as follows:
- array
- multiset
- string
fun is applied in order to each element. The results are
collected, also in order, to a value of the same type as
arr , which is returned.
- mapping
fun is applied to the values, and each result is assigned
to the same index in a new mapping, which is returned.
- program
The program is treated as a mapping containing the
identifiers that are indexable from it and their values.
- object
If there is a lfun::cast method in the object, it's
called
to try to cast the object to an array, a mapping, or a
multiset, in that order, which is then handled as described
above.
fun is applied in different ways depending on its type:
- function
fun is called for each element. It gets the current
element as the first argument and extra as the rest. The
result of the call is collected.
- object
fun is used as a function like above, i.e. the
lfun::`() method in it is called.
- multiset
- mapping
fun is indexed with each element. The result of that is
collected.
- "zero or left out"
Each element that is callable is called with extra as
arguments. The result of the calls are collected. Elements
that aren't callable gets zero as result.
- string
Each element is indexed with the given string. If the result
of that is zero then a zero is collected, otherwise it's
called with extra as arguments and the result of that
call is collected.
This is typically used when arr is a collection of
objects, and fun is the name of some function in them.
- Note
The function is never destructive on arr .
- See also
filter() , enumerate() , foreach()
|