w wyliczeniu funkcji podano, że funkcja map przyjmuje dwa argumenty (krotkę dwuelementową): funkcję oraz listę; natomiast map SML-owe w istocie przyjmuje jeden argument – funkcję użytkownika, zwraca zaś funkcję przyjmującą jako argument listę i to dopiero ona zwraca ostateczny wynik obliczeń:
val NZ = '''map''' niezerowe; (* NZ jest funkcją *) val L1 = NZ [0,1,0,0,5,0,0,0]; (* L1 = [1,5] *) val L2 = NZ [0,0,0,0]; (* L2 = [] *)
JavaScript function map(fun, array) { var result = []; var len=array.length; for (var i=0; i<len; ++i) { result.push(fun(array[i]));
return result;
function curry(fn) { var args = [].slice.call(arguments, 1); return function() { return fn.apply(null, args.concat([].slice.call(arguments)));
function add(x, y) { return x+y;
map(curry(add, 10), [1, 2, 3, 4, 5]);
=> [11, 12, 13, 14, 15]
Scheme (define (curry fun . args) (lambda more-args (apply fun (append args more-args))))
(define (reduce fun lst) (let iter ((result (car lst)) (lst lst)) (if (null?