我一直在和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").
答案 0 :(得分:2)
该函数被称为"迭代",您将其称为" iteratate" 注意额外的" at"在呼叫站点的中间(和评论)