【发布时间】:2016-10-21 13:18:06
【问题描述】:
如果我想添加元组列表的所有元素,我会收到以下错误
let rec addTupLst (xs: 'a * 'a list) =
match xs with
| (a, b) :: rst -> a + b + (addTupLst rst)
| _ -> 0
addTupLst [(1, 2)]
我收到警告
错误 FS0001:此表达式应具有类型
'a * '一个列表
但这里有类型
'b 列表
不能以这种方式对元组列表进行模式匹配,还是有其他错误?
【问题讨论】:
-
在元组周围加上括号(xs: ( 'a * 'a ) list)
-
值得注意的是,您也可以不包含类型注释,编译器会在这种情况下正确推断。
-
@TheQuickBrownFox 好点。我经常发现我在注释方面获得了更多的智能感知帮助,但在这种情况下显然被咬到试图智取编译器
标签: f# pattern-matching