Применение x к списку функций (SML)

Я пытаюсь создать функцию myMap, которая применяет x к списку функций с помощью map.

Пример:

myMap [f1, f2, ..., fn] x 
==> [f1(x), f2(x), ..., fn(x)]

Я считаю, что мне нужно написать анонимную функцию для выполнения этой задачи, но мне трудно понять, как они работают.

Моя попытка:

fun myMap [x] y = [fn => x ] => x;

person user2793862    schedule 28.09.2013    source источник


Ответы (1)


Я не уверен, что вы пытались сделать в своей попытке, поскольку это недействительно sml, но вы можете применить список функций к одному значению, как это

- fun myMap x fns = map (fn f => f x) fns;
val myMap = fn : 'a -> ('a -> 'b) list -> 'b list

Вы можете попробовать

- myMap 1 [(fn x => x+1), (fn x => x+2), (fn x=> x+3)];
val it = [2,3,4] : int list

Как видите, синтаксис анонимных функций fn arg => body.

person zaquest    schedule 28.09.2013