Erlang中的命名列表

时间:2015-11-12 19:00:45

标签: list erlang

我试图在Erlang中创建一个包含多个整数的列表。因此,如果我传入5,它将创建一个包含[1,2,3,4,5]的列表。这是我到目前为止的代码。

所以我想把列表叫做tower1

-module(towers).

-export([create_towers/1]).

create_towers( 0 ) -> [];
create_towers( N ) when N > 0 -> create_towers( N-1 ) ++ [N].

1 个答案:

答案 0 :(得分:0)

代码很好,问题是语法

-module(towers).

-export([create_towers/1]).

create_towers(0) ->
    [];
create_towers(N) when N > 0 ->
    create_towers(N-1) ++ [N].

工作正常

Eshell V7.1  (abort with ^G)
(emacs@Mac-mini-de-Rodrigo)1> c("/Users/rorra/erlang/towers", [{outdir, "/Users/rorra/erlang/"}]).
{ok,towers}
(emacs@Mac-mini-de-Rodrigo)2> towers:create_towers(0).
[]
(emacs@Mac-mini-de-Rodrigo)3> towers:create_towers(10).
[1,2,3,4,5,6,7,8,9,10]

如果你想让它调用创建的列表tower1:

 (emacs@Mac-mini-de-Rodrigo)2> Tower1 = towers:create_towers(5).
 [1,2,3,4,5]

注意所有变量都以upperase开头,如果要命名模块塔1,请将文件名更改为tower1.erl并添加:

-module(tower1).

-export([create_towers/1]).

create_towers(0) ->
    [];
create_towers(N) when N > 0 ->
    create_towers(N-1) ++ [N].

然后你可以调用塔1:create_towers(N),如:

(emacs@Mac-mini-de-Rodrigo)2> MyVar = tower1:create_towers(5).
[1,2,3,4,5]