【发布时间】:2016-01-25 12:31:31
【问题描述】:
我有一个包含 2 种类型的类型 def 和一个相同类型的列表,该列表可能为空,也可能不为空。
type Type1 = string
type Type2 = int
type Type3 = Sometype of Type1 * Type2 * Type3 list
我正在尝试创建元组中所有前两个元素的列表,递归地传递最后一个(其他类型 3 的列表),将其附加到我正在生成的列表中。或者至少这就是我正在尝试的。我的函数给了我一个错误:
let rec extSometypeInc d =
match d with
| Sometype(n,i,[]) -> [(n,i)]
| Sometype(n,i,r1::r2::rt) -> (n,i) :: extSometypeInc(r1,r2,rt)
;;
错误 FS0001:此表达式应具有类型 Type3
但这里有类型 'a * 'b * 'c
【问题讨论】:
-
请就您的问题提供一个清晰、完整的示例 - 在这里,我们对
Type1、Type2和extSometypeInc一无所知...还有您可能会收到错误的行帮助
标签: recursion f# functional-programming tail-recursion