2012-04-19 20 views
0

這是一個Erlang的字符串反碼代碼。Erlang反碼字符串代碼

但是,它不起作用。

-module(lists1). 
-export([reverse/1]). 
    reverse(L) -> 
     reverse(L, []). 
    reverse([H|T], L) -> 
     reverse(T, [H|L]); 
    reverse([], L) -> 
     L. 

lists1:反向(Bbc)。 **異常錯誤:無功能子句匹配列表1:反向(def,[])(lists1.erl,line 5)

爲什麼?

任何幫助將不勝感激。

感謝

回答

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 (abort with ^G)
1> lists1:reverse(def).
fed
2>

+2

爲什麼你想扭轉原子? – 2012-04-19 10:06:22

+0

@ user1002288,如果你接受了你所得到的答案,你將會得到更多答案。 – 2012-04-26 12:44:45