Dr.*_*erg 2 f# tail-recursion f#-3.0
假设我有一个排序列表l,可能有重复值 - 我想返回一个列表,其值为n,但只返回一次. - 例如,对于输入[1,2,3,3,3,4]和3,返回[1,2,3,3,4].我该怎么做?
最简单的方法是这样的:
let rec remove n lst =
match lst with
| h::tl when h = n -> tl
| h::tl -> h :: (remove n tl)
| [] -> []
Run Code Online (Sandbox Code Playgroud)
你递归地遍历列表,直到找到n- 如果你这样做,你丢弃并返回尾部.请注意,这不是尾递归,但可以轻松实现.