【问题标题】:Currying functions with format dependent types具有格式相关类型的柯里化函数
【发布时间】:2014-06-28 10:40:09
【问题描述】:

据我所知,F# 不像处理其他函数那样处理 printfn,因为它依赖于字符串参数的类型。有人可以向我解释为什么这会阻止我这样做

let printn = printfn "%A"

错误表明类型被推断为('a -> unit),并且我需要添加显式参数或类型注释。为什么?我对它推断的类型非常满意。另外,如果我添加一个显式点,它仍然具有相同的类型。

【问题讨论】:

    标签: f#


    【解决方案1】:

    因为printn 将是您定义它的简单值。并且值在 .NET 运行时中不能是通用的。

    使参数显式,使其成为函数:

    let printn value = printfn "%A" value
    

    有关详细信息,请参阅 MSDN 上的主题 Value Restriction

    【讨论】:

    • 我很困惑。那么printfn 是如何工作的呢?如果第二个参数只需要一个并返回一个值,我该如何传入?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2016-01-01
    • 2018-02-05
    • 1970-01-01
    • 2021-01-31
    相关资源
    最近更新 更多