【发布时间】:2014-10-08 12:13:56
【问题描述】:
我一直在尝试理解 SML 中的高阶函数。我知道如何编写简单的高阶函数,也了解签名。一个例子是:
fun increment list = map (fn x=> x + 1) list;
val it = fn: int list -> int list
但是,我无法理解以下高阶函数的签名:
fun add x y = x + y;
val add = fn: int -> int -> int
函数可以写成:
fun add (x,y) = x+y;
val add: fn : (int * int) -> int
据我了解。但是在前面的函数中,我无法理解操作顺序是如何工作的。该函数是一次采用两个参数,还是一次采用一个产生一个新函数,然后产生所需的结果?它如何适用于任何其他高阶函数?
我需要为我的作业以及几周后即将到来的考试建立关于高阶函数签名的概念。
【问题讨论】:
标签: sml smlnj higher-order-functions operator-precedence