List 如何为列表创建序列函数?
我正在尝试在Erlang中创建一个列表,其中包含许多整数。因此,如果我传入List 如何为列表创建序列函数?,list,erlang,List,Erlang,我正在尝试在Erlang中创建一个列表,其中包含许多整数。因此,如果我传入5,它将创建一个包含[1,2,3,4,5]的列表。这是我目前掌握的代码 因此,我想将该列表称为类似于tower1 -模块(塔)。 -导出([create_towers/1])。 创建_塔(0)->[]; 当N>0时创建_塔(N)->创建_塔(N-1)+[N]。 代码很好,问题在于语法 -module(towers). -export([create_towers/1]). create_towers(0) ->
5
,它将创建一个包含[1,2,3,4,5]
的列表。这是我目前掌握的代码
因此,我想将该列表称为类似于tower1
-模块(塔)。
-导出([create_towers/1])。
创建_塔(0)->[];
当N>0时创建_塔(N)->创建_塔(N-1)+[N]。
代码很好,问题在于语法
-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]
如果要调用创建的列表1:
(emacs@Mac-mini-de-Rodrigo)2> Tower1 = towers:create_towers(5).
[1,2,3,4,5]
请注意,所有变量都以upperase开头,如果要将模块命名为towers1,请将文件名更改为tower1.erl并添加:
-module(tower1).
-export([create_towers/1]).
create_towers(0) ->
[];
create_towers(N) when N > 0 ->
create_towers(N-1) ++ [N].
然后,您可以调用towers1:create_towers(N),如:
Like list:seq(1,5)?我将如何修改代码以将我创建的列表命名为tower1?tower1=towers:create_towers(10)。erlang上的所有变量都以大写开头。如果要将模块命名为towers1,那么可以调用towers1:create_towers(10),然后将文件名更改为towers1.erl并更改-module(towers)。到-模块(塔1)。谢谢,这就解释了!很好,点击投票按钮下的V,可以随意接受我的答案作为有效答案:)顺便说一句,我以为你是在练习代码,不值得在现实世界的软件上使用它,你只需编写
列表:seq(0,5)
,就可以建立列表。
(emacs@Mac-mini-de-Rodrigo)2> MyVar = tower1:create_towers(5).
[1,2,3,4,5]