Erlang:右侧值错误不匹配

Erlang: No Match of right hand side value error

我正在尝试在 erlang 中创建一些塔的表示,当我尝试 运行 以下命令时,出现右侧值不匹配。

T = towers:create(5).

代码:

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

您正在分配未使用的变量,这将导致编译器警告,但实际上并没有失败。这很好用:

-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,[]}]