这很简单但我无法在任何地方找到答案。
我们说我创建了一个新的type student = string * int
,它是学生的名字和考试成绩的元组。
然后将一个学生列表传递给一个函数,我必须找到该类(或列表)的平均分数。
let blah (class : student list) : float =
match class with
[] -> []
| hd :: tl -> hd ??????
所以我开始一个标准模式匹配,得到列表中的一个元素(又名学生),但我究竟如何提取测试分数? 我觉得它是一个非常明显和基本的东西,但我之前只用int,字符串,整数列表,int列表等编码。其中hd特别是你想要的信息。
答案 0 :(得分:4)
你只需要一个更精细的模式:
match class with
| [] -> ...
| (name, score) :: tl -> ...
在某些情况下,您可以使用fst
和snd
来获取一对组件,但匹配通常会为您提供更清晰的代码(根据我的经验)。