Method map()
- Method map
mixed
map(mixed
arr
,void
|mixed
fun
,mixed
...extra
)- Description
Applies
fun
to the elements inarr
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 asarr
, 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 andextra
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.- array
Each element of the
fun
array will be called for each element ofarr
.- 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, andfun
is the name of some function in them.
- Note
The function is never destructive on
arr
.- See also
filter(), enumerate(),
foreach()