【发布时间】:2012-03-13 21:12:51
【问题描述】:
我有一个 F# 函数:
let removeEven (listToGoUnder : _ list) =
let rec listRec list x =
match list with
| [] -> []
| head::tail when (x%2 = 0) -> head :: listRec (tail) (x+1)
| head::tail -> listRec (tail) (x+1)
listRec listToGoUnder 0
它删除列表中偶数索引处的所有元素。
如果我给列表一些输入,它会起作用,比如removeEven ['1';'2';'3'] 我得到['1';'3'] 我应该这样做。但是当我插入一个空列表作为参数时,我得到了这个错误:
stdin(78,1):错误 FS0030:值限制。 'it' 的值是 推断具有泛型类型
val it : '_a list 将 'it' 定义为一个简单的数据项,使 它是一个带有显式参数的函数,或者,如果您不打算使用它 要通用,请添加类型注释。
帮忙,有人吗?
【问题讨论】:
标签: list f# value-restriction