[4,4,4] 这是我迄今为止尝试过的: -module(bak-6ren">
gpt4 book ai didi

Erlang "unbound variable"调用函数时

转载 作者:行者123 更新时间:2023-12-01 09:03:22 30 4
gpt4 key购买 nike

我正在尝试将一个整数参数 N 传递给 cake 并返回一个大小为 N 的 2 平方的列表(为了举例)。例如面包店:cake(3) => [4,4,4]

这是我迄今为止尝试过的:

-module(bakery).
-export([cake/1]).

Foo = fun(X) -> X * X end.

cake(0) -> [];
cake(N) when N > 0 -> [ Foo(2) | cake(N-1) ].

当我在 erl 中编译代码 c(bakery). 时,我得到以下错误跟踪:

bakery.erl:4:  syntax error before: Foo
bakery.erl:7: variable 'Foo' is unbound
error

我仍然习惯于匿名函数和一般的 erlang 来一个面向对象的世界。任何帮助将不胜感激。

最佳答案

每个 Erlang 模块,如 here 所述, 应该由一系列属性和函数声明组成,每个都以句点 (.) 结束

但是这一行:

Foo = fun(X) -> X * X end.

... 两者都不是,应改为:

foo(X) -> X * X.

foo 在这里是小写的,因为这一行是 function declaration , 其中函数名应该是 atom .

所以你的模块最终会是这样的:

-module(bakery).
-export([cake/1]).

foo(X) -> X * X.

cake(0) -> [];
cake(N) when N > 0 -> [ foo(2) | cake(N-1) ].

关于Erlang "unbound variable"调用函数时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12719103/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com