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,你不需要任何其他子句