OCaml:如何从类型中获取参数?

时间:2015-09-30 18:43:49

标签: types parameters functional-programming ocaml

这很简单但我无法在任何地方找到答案。

我们说我创建了一个新的type student = string * int,它是学生的名字和考试成绩的元组。

然后将一个学生列表传递给一个函数,我必须找到该类(或列表)的平均分数。

let blah (class : student list) : float =
match class with
[] -> [] 
| hd :: tl -> hd ??????

所以我开始一个标准模式匹配,得到列表中的一个元素(又名学生),但我究竟如何提取测试分数? 我觉得它是一个非常明显和基本的东西,但我之前只用int,字符串,整数列表,int列表等编码。其中hd特别是你想要的信息。

1 个答案:

答案 0 :(得分:4)

你只需要一个更精细的模式:

match class with
| [] -> ...
| (name, score) :: tl -> ...

在某些情况下,您可以使用fstsnd来获取一对组件,但匹配通常会为您提供更清晰的代码(根据我的经验)。