let duplicates =
let rec duplicates' accumulator = function
| [] -> accumulator
| [ item ] -> duplicates' (item :: accumulator) []
| item :: item2 :: tail ->
if item = item2 then duplicates' (item :: accumulator) tail
else duplicates' (item::accumulator) (item2::tail)
in
duplicates' [];;
Run Code Online (Sandbox Code Playgroud)
如果我添加第二个参数,该参数必须是“列表”并在其上使用“匹配”,则代码可以正常工作。
(另外:代码结尾和:重复 [] '参数')
如果我使用 function 关键字并使代码更简洁,则函数返回:
val duplicates : '_weak14 list -> '_weak14 list = <fun>
Run Code Online (Sandbox Code Playgroud)