看我的代码:
let my lst p q =
if lst = [] then
[]
else
let i = 0 in let res = [] in let acc=[] in
fold_left ( fun acc h ->
if (not (p h) && not(q h)) then
((i+1), [], res)
else if (p h && not (q h)) then
((i+1), (i::acc),res)
else if (not (p h) && q h) then
((i+1), [] (acc@res))
else
((i+1), [], ((i::acc)@res)))
(i,acc,res) lst;;
我得到了编译错误:
此表达式的类型为 int * int list * 'a list 但表达式应为 int list 类型
你能帮助我吗 ?