以下代码尝试创建一个函数,该函数'a list list -> 'a list
给出一个列表列表,返回一个列表,该列表由从列表中提取的每个第一个元素组成。
#let first_element_lists lis =
let f x y =
match y with
[] -> x
|[]::[] -> x
|[z]::[zs] -> match [z] with
[] -> x
| v::vs -> v::x
in
foldr f [] lis;;
Toplevel input:
> foldr f [] lis;;
> ^
This expression has type 'a list -> 'a list list -> 'a list,
but is used with type 'a list -> 'a list list -> 'a list list.
我真的很难弄清楚错误到底在哪里。