【问题标题】:Erlang: No Match of right hand side value errorErlang:右手边值错误没有匹配
【发布时间】:2016-02-16 03:03:18
【问题描述】:

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

T = towers:create(5).

代码:

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

【问题讨论】:

  • 正如@zxq9 所说,这个有限的代码sn-p 将从编译器发出几条Warning: variable 'TowerX' is unused 消息。目前尚不清楚no match of right hand side 错误来自何处。

标签: list erlang


【解决方案1】:

您正在分配未使用的变量,这将导致编译器警告,但实际上不会失败。这工作得很好:

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

【讨论】:

    猜你喜欢
    • 2014-06-27
    • 1970-01-01
    • 2015-12-06
    • 2019-02-27
    • 2014-02-06
    • 2021-04-03
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多