Function 什么时候应该使用val x=fn而不是fun x

Function 什么时候应该使用val x=fn而不是fun x,function,anonymous-function,sml,ml,Function,Anonymous Function,Sml,Ml,我刚刚开始学习标准ML(以及一般的函数编程),我遇到了两种定义函数的不同方法 val double = fn x => x*2: 及 如果我理解正确的话,第一个是给一个非对称函数赋值。在什么情况下我应该这样做而不是fun abc?这是一个风格问题。fun语法,因此可以用前者编写的任何东西也可以用后者编写 fn直接表示λ-抽象,这意味着它仅限于一个参数的函数(请参阅)fun是一种方便的速记方式,它允许您使用多参数函数,并用一点语法将名称绑定到函数上,因此,无论何时您想做这些事情,最好使用f

我刚刚开始学习标准ML(以及一般的函数编程),我遇到了两种定义函数的不同方法

val double = fn x => x*2:


如果我理解正确的话,第一个是给一个非对称函数赋值。在什么情况下我应该这样做而不是
fun abc

这是一个风格问题。
fun
语法,因此可以用前者编写的任何东西也可以用后者编写


fn
直接表示λ-抽象,这意味着它仅限于一个参数的函数(请参阅)
fun
是一种方便的速记方式,它允许您使用多参数函数,并用一点语法将名称绑定到函数上,因此,无论何时您想做这些事情,最好使用
fun

一般来说,我也赞成使用
fun
,因为它更易于阅读
fun double x = x*2;