Erlang 打印 N 次
Erlang Printing N times
我正在尝试自学一些 erlang,但我不断收到一个我不理解的错误。
我正在尝试制作一个接受整数 N 并打印 "Hello World" N 次的函数,这样我就可以热交换消息(还没有到那部分)。
我的代码:
-module(repeater).
-export([repeat/1], [start/0]).
repeat(Num) when is_Integer(Num), Num > 0 ->
if Num == 1 ->
io:fwrite("Hello World"),
io:fwrite("~n");
else ->
io:fwrite(pass(Num - 1));
true ->
io:fwrite("I have no idea what is happening")
end.
start() ->
repeat(3).
我收到的错误信息是:
repeater.erl:7: bad export declaration
repeater.erl:11: Warning: function pass/1 is unused
repeater.erl:21: Warning: function start/0 is unused
我不知道为什么它说是"Unused"。
我发现这门语言很难让自己学会,因为我什至无法让 if else 块正常工作
尝试替换
-export([repeat/1], [start/0]).
与
-export([repeat/1, start/0]).
关于守卫的表达,你打错了is_Integer()
,应该是is_integer()
关于您的 if
情况,
使用 else -> io:fwrite(pass(Num-1))
毫无意义。除了 true
之外的任何原子都计算为 false
因此除了 true
之外的任何原子在这里都是无用的。 if
需要至少有一个评估为 true
的子句,因为您已经有一个包罗万象的子句 true -> io:fwrite("I have no idea what is happening")
如果 Num
更大,它将被调用大于 1,你不需要任何其他子句
我正在尝试自学一些 erlang,但我不断收到一个我不理解的错误。
我正在尝试制作一个接受整数 N 并打印 "Hello World" N 次的函数,这样我就可以热交换消息(还没有到那部分)。
我的代码:
-module(repeater).
-export([repeat/1], [start/0]).
repeat(Num) when is_Integer(Num), Num > 0 ->
if Num == 1 ->
io:fwrite("Hello World"),
io:fwrite("~n");
else ->
io:fwrite(pass(Num - 1));
true ->
io:fwrite("I have no idea what is happening")
end.
start() ->
repeat(3).
我收到的错误信息是:
repeater.erl:7: bad export declaration
repeater.erl:11: Warning: function pass/1 is unused
repeater.erl:21: Warning: function start/0 is unused
我不知道为什么它说是"Unused"。
我发现这门语言很难让自己学会,因为我什至无法让 if else 块正常工作
尝试替换
-export([repeat/1], [start/0]).
与
-export([repeat/1, start/0]).
关于守卫的表达,你打错了is_Integer()
,应该是is_integer()
关于您的 if
情况,
使用 else -> io:fwrite(pass(Num-1))
毫无意义。除了 true
之外的任何原子都计算为 false
因此除了 true
之外的任何原子在这里都是无用的。 if
需要至少有一个评估为 true
的子句,因为您已经有一个包罗万象的子句 true -> io:fwrite("I have no idea what is happening")
如果 Num
更大,它将被调用大于 1,你不需要任何其他子句