据我所知,F#不像处理其他函数那样处理printfn,因为它依赖于字符串参数。有人能给我解释一下为什么这阻止了我
let printn = printfn "%A"
错误表示类型被推断为('a -> unit)
,并且我需要添加显式参数或类型注释。为什么?我对它推断的类型很满意。另外,如果我添加一个显式点,它仍然具有相同的类型。
发布于 2014-06-28 02:43:40
因为printn
将是一个简单的值,您定义它的方式。而且值在.NET运行时不能是通用的。
使参数显式化,因此它是一个函数:
let printn value = printfn "%A" value
有关更多信息,请参见MSDN上的主题价值约束。
https://stackoverflow.com/questions/24465977
复制