这是一个执行字符串反转的Erlang代码。
但是,它不起作用。
-module(lists1).
-export([reverse/1]).
reverse(L) ->
reverse(L, []).
reverse([H|T], L) ->
reverse(T, [H|L]);
reverse([], L) ->
L.
lists1:reverse(Bbc)。 **异常错误:没有匹配lists1的函数子句:reverse(def,[])(lists1.erl,第5行)
为什么?任何帮助将不胜感激。
感谢
答案 0 :(得分:7)
根据错误消息,您尝试反转原子(def
)而不是字符串("def"
)。原子不是字符串/列表,因此与您的任何模式都不匹配。您可以添加一个来处理这种情况:
reverse(A) when is_atom(A) -> list_to_atom(reverse(atom_to_list(A)));
reverse(L) -> reverse(L, []).
等
这给了我这个:
Eshell V5.7.4(以^ G中止)
1 GT; lists1:反向(DEF)
。 美联储
2 - ;