相关疑难解决方法(0)

空列表中的F#值限制

我有一个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
Run Code Online (Sandbox Code Playgroud)

它会删除列表中偶数索引处的所有元素.它是有效的,如果我给列表一些输入,就像removeEven ['1';'2';'3']我得到['1';'3']我应该的.但是当我插入一个空列表作为参数时,我收到此错误:

stdin(78,1):错误FS0030:值限制.值'it'被推断为具有泛型类型

val it:'_ a list将'it'定义为一个简单的数据项,使其成为具有显式参数的函数,或者,如果您不打算将其作为泛型,则添加类型注释.

帮忙,有人吗?

f# list value-restriction

5
推荐指数
1
解决办法
2418
查看次数

标签 统计

f# ×1

list ×1

value-restriction ×1