【发布时间】:2011-07-30 20:47:37
【问题描述】:
这是我从这本电子书 (http://www.cs.cornell.edu/riccardo/prog-smlnj/notes-011001.pdf) 中挑选的一个示例
-fun curry (f:'a * 'b -> 'c) = fn (x:'a) => fn (y:'b) => f (x,y);
val curry = fn : ('a * 'b -> 'c) -> 'a -> 'b -> 'c
我如何解释这个函数。 Curry 将 'a * 'b -> 'c 类型的函数 f 作为参数。我无法理解'='之后的部分。什么是关联顺序?
这是另一个例子:
fun add’ (x:int) (y:int):int = x + y;
这是如何解析的?
Wikipedia 说“currying 是一种转换具有多个参数(或参数的 n 元组)的函数的技术,它可以被称为一个函数链,每个函数都有一个参数(部分应用) ”。哪个是单个参数:多个参数中的第一个还是最后一个?
【问题讨论】:
-
我在 haskell 中有同样的问题。所以这可能会帮助你stackoverflow.com/questions/3794371/…
-
@Matt:读完之后我更加困惑了:)谢谢你的链接。
标签: sml