【发布时间】:2014-05-07 11:16:42
【问题描述】:
我想在没有明确使用参数的情况下定义sumOfSquares,而是依赖函数组合
下面是我的代码
let sumOfSquares = Seq.map (fun n -> n * n) >> Seq.sum
但是,我得到了以下错误
stdin(80,5):错误 FS0030:值限制。值“sumOfSquares” 已被推断为具有泛型类型
val sumOfSquares : ('_a -> int) when '_a :> seq<int>要么明确“sumOfSquares”的参数,要么,如果你不打算 它是通用的,添加一个类型注释。
解决它的一种方法是使用参数
let sumOfSquares nums = nums |> Seq.map (fun n -> n * n) |> Seq.sum
这将起作用。但是,我想看看我是否可以单独使用合成来定义平方和
更新
这是一个nice article 描述我遇到的问题:值限制。
【问题讨论】:
标签: f# value-restriction