将x应用于函数列表(SML)

时间:2013-09-28 01:31:47

标签: functional-programming sml smlnj

我正在尝试使用myMap创建一个将x应用于函数列表的函数map

示例:

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

我相信我需要编写一个匿名函数来完成这项任务,但我很难理解它们是如何工作的。

我的尝试:

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

1 个答案:

答案 0 :(得分: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