【问题标题】:When should I use val x = fn as opposed to fun x我什么时候应该使用 val x = fn 而不是 fun x
【发布时间】:2014-10-26 10:19:38
【问题描述】:

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

val double = fn x => x*2:

fun double x = x*2;

如果我理解正确,第一个是将变量分配给匿名函数。在什么情况下我应该这样做而不是fun abc

【问题讨论】:

    标签: function anonymous-function sml ml


    【解决方案1】:

    这是一个风格问题。 fun 语法is syntactic sugar for fn,所以你可以用前者写的任何东西也可以用后者写。

    fn 直接表示 λ 抽象,这意味着它仅限于一个参数的函数(请参阅this SO question)。 fun 是一种方便的简写方式,它允许您使用curry 一个多参数函数并使用一点语法将名称绑定到它,因此当您想做其中一件事情时,最好使用fun

    【讨论】:

    • 我也会投票赞成在一般情况下使用fun,因为它更容易阅读
    猜你喜欢
    • 1970-01-01
    • 2019-11-15
    • 2021-10-07
    • 2016-08-09
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多