list.spad line 292 [edit on github]
ListFunctions2 implements utility functions that operate on two kinds of lists, each with a possibly different type of element.
map(fn, u)
applies fn
to each element of list u
and returns a new list with the results. For example map(square, [1, 2, 3]) = [1, 4, 9]
.
reduce(fn, u, ident)
successively uses the binary function fn
on the elements of list u
and the result of previous applications. ident
is returned if the u
is empty. Note the order of application in the following examples: reduce(fn, [1, 2, 3], 0) = fn(3, fn(2, fn(1, 0)))
and reduce(*, [2, 3], 1) = 3 * (2 * 1)
.
scan(fn, u, ident)
successively uses the binary function fn
to reduce more and more of list u
. ident
is returned if the u
is empty. The result is a list of the reductions at each step. See reduce for more information. Examples: scan(fn, [1, 2], 0) = [fn(2, fn(1, 0)), fn(1, 0)]
and scan(*, [2, 3], 1) = [2 * 1, 3 * (2 * 1)]
.