我在使用列表并返回选项列表的递归函数时遇到问题。例如一个函数all_except_one
:
val all_except_one : 'a -> 'a list -> 'a list option = <fun>
'a
从列表中删除第一次出现的位置。如果'a
不在列表中,则应返回None
。
如果没有该选项,我的代码如下所示:
let same_string s1 s2 =
s1 = s2
let rec all_except_one str str_l =
match str_l with
| [] -> []
| hd::tl -> if same_string hd str
then tl
else hd::(all_except_one str tl)
但是每当我尝试添加该选项时,它都会妨碍我进行递归调用。