"Caml简介"说
注意,在Caml中,最好对多参数函数使用Curried函数定义,而不是元组.
比较'a -> 'b -> 'c调用约定时'a * 'b -> 'c.
'a -> 'b -> 'c
'a * 'b -> 'c
使用SML/NJ时,我习惯于使用元组类型进行输入和输出:('a * 'b) -> ('c * 'd)因此使用元组表示多个输入似乎与表达多个输出的方式对称.
('a * 'b) -> ('c * 'd)
为什么curous推荐用于OCaml函数声明而不是元组参数?是否允许currying/partial评估带来更大的灵活性,还是从OCaml编译器的实现细节中获得了一些其他好处?
ocaml tuples currying
currying ×1
ocaml ×1
tuples ×1