我已经创建了一个concatenate/1
功能,这应该拼接列表和原子组成的列表:二郎 - 异常错误:没有功能语句匹配
concatenate(L)->
concatenate(L,[]).
concatenate([],R)->
reverse(R);
concatenate([H|T],R) when is_atom(H) ->
concatenate(T,[H|R]);
concatenate([[]|L],R)->
concatenate(L,R);
concatenate([[H|T]|L],R)->
concatenate([T|L],[H|R]).
但是我得到的错误:
15> ml:concatenate([[1,2],4,[3,4,5],[5,6]]).
** exception error: no function clause matching
ml:concatenate([4,[3,4,5],[5,6]],[2,1]) (ml.erl, line 27)
这相信应该匹配,因为第二个concatenate/2
条款。
请问我在这里做错了什么?
什么是你想实现什么?这里有两个正交的问题编纂在一起:列表形成和条件检查。为了达到一个干净的,更Erlangish的解决方案,我们需要从更高的层面更多地了解这个问题。 IOW,看起来你有一个XY问题。 – zxq9