Erlang代码反向字符串

use*_*288 1 algorithm erlang

这是一个执行字符串反转的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行)

为什么?

任何帮助将不胜感激.

谢谢

Mar*_*eed 7

根据错误消息,您尝试反转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>

  • 你为什么要反转一个原子? (2认同)