我正在学习 OCaml,在函数式编程方面遇到了一些麻烦......
我需要创建一个函数,用于替换给定整数列表的字符,即字符串中该索引处的字符。例如,我输入 [1;4] 'u'“Hello”,它输出“Hullu”。
这就是我想出的:
let remplace_positions lst c str =
let rec acc lst c str n l_index ret =
match (n >= String.length str, List.nth lst l_index = n) with
| true, _ -> ret
| _, true -> acc lst c (n+1) (l_index+1) (ret ^ (String.make 1 c))
| _, _ -> acc lst c (n+1) (l_index+1) (ret ^ (String.make 1 (String.get str n)))
in
acc lst c str 0 0 ""
但如您所见,最后两个匹配案例存在错误。它们是字符串 -> 字符串类型,但我希望它们是字符串类型。
有人知道如何在递归调用函数时修复这个问题吗?