【发布时间】:2013-06-20 13:37:08
【问题描述】:
以下代码采用 2 个参数。第一个是三元组列表:三元组 (d,m,y) 用于表示日期。
第二个是一个月的整数
该代码用于计算列表中该月份的日期出现次数
附言我想这可能看起来像一个家庭作业问题 - 它不是。它来自我今年早些时候在 ML 中完成的一门课程,我正在尝试重做 f# 中的所有练习。所以这只是为了我的利益
let rec number_in_month (dates : (int * int * int) list, month) =
match dates with
| [] -> 0
| (_,y,_) when month = y -> 1 + number_in_month(dates.Tail, month)
| _ -> number_in_month(dates.Tail, month)
但它给出了错误:
这个表达式应该有类型 (int * int * int) 列表但这里有类型 'a * 'b * 'c
知道我做错了什么吗?
【问题讨论】:
-
实际上,输入您的列表 intintint 没有任何价值,是吗?你就不能做到
(dates : ('a* 'b* 'c) list吗? -
如果我这样做,我会得到一个类似的错误:这个表达式应该有类型 ('a * 'b * 'c) 列表,但这里有类型 'd * 'e * 'f跨度>
标签: f#