Recursion 如何在Erlang中指定前向引用?

Recursion 如何在Erlang中指定前向引用?,recursion,erlang,forward-declaration,Recursion,Erlang,Forward Declaration,我一直在和Erlang交流,并决定尝试制作一个目录列表器。在一起破解一些代码之后,我遇到了路障,因为第二条注释行显示了一条错误消息。实际上,它看不到迭代函数。我在这里和谷歌上做了一些研究。我也尝试过导出函数这里有一些我没有正确思考的问题。有人能给我指出正确的方向吗? -module(iterate_dir). % exporting iterate/1 does not make it visible. -export([start/0, iterate/1, show_files/2]).

我一直在和Erlang交流,并决定尝试制作一个目录列表器。在一起破解一些代码之后,我遇到了路障,因为第二条注释行显示了一条错误消息。实际上,它看不到迭代函数。我在这里和谷歌上做了一些研究。我也尝试过导出函数这里有一些我没有正确思考的问题。有人能给我指出正确的方向吗?

-module(iterate_dir).

% exporting iterate/1 does not make it visible.
-export([start/0, iterate/1, show_files/2]).

show_files([], _) ->
    ok;

show_files([Head|Tail], Path) ->
    FullPath = [Path] ++ [Head],
    case filelib:is_dir(FullPath) of
                                                    % function iteratate/1 undefined
        true -> io:format("Dir  ~s\n", [FullPath]), iteratate(FullPath);
        false-> io:format("File ~s\n", [FullPath])
    end,
    show_files(Tail, Path).


iterate(Directory) ->
    case file:list_dir(Directory) of
        {ok,    Files}   -> show_files(Files, Directory);
        {error, Reason}  -> io:format("Error ~s~n", [Reason])
    end.

start() ->
    io:format("Running~n"),
    iterate("c:\\"),
    io:format("Complete~n").
函数名为“iterate”,您将其称为“iterate”
请注意呼叫站点中间的“AT”(和注释)

一个打印错误。“迭代”=/=“迭代”Ya。就寝时间到了。谢谢你,大卫。