我刚接触OCaml,需要一个简单的函数来替换列表中的元素。
经过一段时间的尝试,我成功实现了这个功能,但是我不想在函数中使用计数参数。
let rec replaceelem ls x elem count=
match ls with
| [] -> ls
| h::t -> if (count = x) then
elem::(replaceelem t x elem (count+1))
else
h::(replaceelem t x elem (count+1))
示例
# let a = [1;2;3;4;5];;
val a : int list = [1; 2; 3; 4; 5]
# replaceelem a 3 99 0;;
- : int list = [1; 2; 3; 99; 5]