嘿,我是函数式编程的新手,我正在尝试编写一个将列表作为输入的函数。此函数应返回元组中的最后一个元素和剩余列表。
let poplast l = let rec temp acc t = match t with
|[] -> failwith "Error"
|[x]-> (acc,x)
|x::xs -> temp x::acc xs
in temp [] l;;
这是我得到的错误:
错误:此表达式具有类型'列表 但是预期表达式为' b *' c
在第三场比赛后。我真的不知道什么是错的。
答案 0 :(得分:3)
OCaml将temp x::acc xs
解析为(temp x) :: (acc xs)
,但您的意思是temp (x::acc) xs
。