curried函数,它将一个函数和一个元组列表作为输入

时间:2013-09-26 05:46:54

标签: functional-programming sml smlnj

我正在尝试定义一个curried函数,它将一个函数和一个元组列表作为输入并返回一个布尔值

例如

values(fn (x,y:int)=>(x-y) [(5,0)];
val it = true:bool

但我的问题是我不知道如何将动态函数作为参数传递。有可能吗???帮助我。我是初学者。

由于

1 个答案:

答案 0 :(得分:0)

您可以像传递任何其他函数一样传递函数。例如:

fun values f []      = ...
  | values f (x::xs) = ...

然后可以使用f,就像它是在函数外部定义的函数一样。

作为一个相关示例,这是一个函数,它接受x和函数列表[f1, f2, ..., fn],并将列表中的每个函数应用于x

fun values x [] = []
  | values x (f::fs) = f x :: values x fs