1

これは文字列の反転を行うための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行目)

なぜ ?

どんな助けでもありがたいです。

ありがとう

4

1 に答える 1

7

エラーメッセージに基づいてdef、文字列()ではなくアトム()を逆にしようとしました"def"。アトムは文字列/リストではないため、どのパターンとも一致しません。その場合を処理するために1つ追加できます。

reverse(A) when is_atom(A) -> list_to_atom(reverse(atom_to_list(A)));
reverse(L) -> reverse(L, []).

など

それは私にこれを与えます:

Eshell V5.7.4(^ Gで中止)
1> lists1:reverse(def)。
給餌
2>

于 2012-04-19T00:51:38.750 に答える