这是一个执行字符串反转的Erlang代码.
但是,它不起作用.
-module(lists1).
-export([reverse/1]).
reverse(L) ->
reverse(L, []).
reverse([H|T], L) ->
reverse(T, [H|L]);
reverse([], L) ->
L.
Run Code Online (Sandbox Code Playgroud)
lists1:reverse(Bbc).**异常错误:没有匹配lists1的函数子句:reverse(def,[])(lists1.erl,第5行)
为什么?
任何帮助将不胜感激.
谢谢
根据错误消息,您尝试反转atom(def)而不是字符串("def").原子不是字符串/列表,因此与您的任何模式都不匹配.你可以添加一个来处理这种情况:
reverse(A) when is_atom(A) -> list_to_atom(reverse(atom_to_list(A)));
reverse(L) -> reverse(L, []).
Run Code Online (Sandbox Code Playgroud)
等等.
这给了我这个:
Eshell V5.7.4(用^ G中止)
1> lists1:reverse(def).
喂
2>
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |