2013-09-28 4 views
0

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

Пример:

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

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

Моя попытка:

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

ответ

2

Я не уверен, что вы пытаетесь сделать в вашей попытки, так как это не действует 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.

Смежные вопросы