2015-11-14 14 views
0

我試圖創建erlang中的一些塔的表示,當我嘗試運行以下命令時,出現右側值的不匹配。Erlang:沒有匹配的右側值的錯誤

T = towers:create(5). 

代碼:

create(N) -> 
    [{tower1, Tower1 = lists:seq(1,N)}, {tower2, Tower2 = []}, {tower3, Tower3 = []}]. 
+0

正如@ zxq9說,這有限的代碼片段會發出一些警告'。目前還不清楚「右側不匹配」錯誤是從哪裏來的。 – aronisstav

回答

3

要分配變量未被使用,這將導致一個編譯器警告,但實際上沒有失敗。從編譯器變量 'TowerX' 是unused`消息:這只是正常:

-module(towers). 
-export([create/1]). 

create(N) -> 
    [{tower1, lists:seq(1,N)}, {tower2, []}, {tower3, []}]. 

在使用中:

1> c(towers). 
{ok,towers} 
2> towers:create(5). 
[{tower1,[1,2,3,4,5]},{tower2,[]},{tower3,[]}]