Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 如何为列表创建序列函数?_List_Erlang - Fatal编程技术网

List 如何为列表创建序列函数?

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) ->

我正在尝试在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) ->
    [];
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]