extractcc(L) -> extractcc(L,[]).
etractcc([],R) -> lists:reverse(R);
extractcc([H,H|T],R) -> extactcc(T,[H,H|R]);
extractcc([_H|T],R) -> extractcc(T,R).
Run Code Online (Sandbox Code Playgroud)
这将适用于您的示例,但如果连续元素超过2个则会有奇怪的行为.这里是一个用shell编写的例子:
1> Ex = fun Ex([],R) -> lists:reverse(R);
1> Ex([H,H|T],R) -> Ex(T,[H,H|R]);
1> Ex([_H|T],R) -> Ex(T,R) end.
#Fun<erl_eval.36.90072148>
2> E = fun(L) -> Ex(L,[]) end.
#Fun<erl_eval.6.90072148>
3> E([1,2,3,3,4,3]).
[3,3]
4> E([1,2,1,2,1]).
[]
5> E([1,2,2,2,3]).
[2,2]
6> E([1,2,2,2,2,3]).
[2,2,2,2]
Run Code Online (Sandbox Code Playgroud)
我让你找到如何编码预期的行为.