小编Cap*_*apa的帖子

返回Erlang中的相邻重复项

我正在努力学习Erlang中的递归,我正在读一本书.但是当遇到列表并仅返回重复元素的问题时,我正在撞墙.我尝试编写一个函数,它只返回唯一元素,然后从原始列表中删除它们.

adjacent_dups(L) -> L -- uniques(L).

uniques([])    -> [];
uniques([H|T]) -> [H | [X || X <- uniques(T), X /= H]].
Run Code Online (Sandbox Code Playgroud)

但是,当列表结构不合理时,这将不会给出正确的结果.

L = [7,3,4,3]
Run Code Online (Sandbox Code Playgroud)

我的代码将返回

adjacent_dups([7,3,4,3]) -> 3 
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到

adjacent_dups([7,3,4,3]) -> [] 
Run Code Online (Sandbox Code Playgroud)

erlang recursion

4
推荐指数
1
解决办法
180
查看次数

标签 统计

erlang ×1

recursion ×1