for(int i<0;i<Array.size;i++)
{
if(Array[i]==0)
count0++;
else if(Array[i]==1)
count1++;
else
System.out.println("not required");
}
这是java中的代码。如何使用模式匹配和递归函数在ocaml中为列表编写?我是OCaml的新手。
答案 0 :(得分:2)
对于简单折叠,您不需要使用显式递归。这是一个维持计数的函数:
let count (zeroes, ones) = function
| 0 -> (zeroes + 1, ones)
| 1 -> (zeroes, ones + 1)
| _ -> (zeroes, ones)
以下是如何将其应用于列表:
let count_list l = List.fold_left count (0, 0) l
(如果这是一个家庭作业问题,你应该在询问SO之前尝试自己解决。)