让我们说我有一个功能
let makeMonitoredFun f =
let c = ref 0
(fun x -> c := !c+1; printf "Called %d times.\n" !c; f x);;
Run Code Online (Sandbox Code Playgroud)
为什么我不被允许这样做.
let mrev = makeMonitoredFun List.rev
Run Code Online (Sandbox Code Playgroud)
因此,大概您指的是在尝试编译代码时获得的值类型限制.如果添加类型注释,它将正常工作/.有关值类型错误的详细信息,请参阅本文中的一篇F#开发人员http://blogs.msdn.com/b/mulambda/archive/2010/05/01/value-restriction-in-f.aspx