使用格式相关类型来处理函数

时间:2014-06-28 10:40:09

标签: f#

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

let printn = printfn "%A"

错误表示该类型是('a -> unit),我需要添加显式参数或类型注释。为什么?它推断它的类型我完全没问题。此外,如果我添加一个显式点,它仍然具有相同的类型。

1 个答案:

答案 0 :(得分:2)

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

使参数显式,因此它是一个函数:

let printn value = printfn "%A" value

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