Erlang打印列表

时间:2015-11-17 16:23:40

标签: functional-programming erlang

尝试模拟河内的塔式游戏,但我无法正确打印列表。

-module(hanoi).
-export([create_towers/1]).

create_towers(0) ->
    [];

create_towers(X) ->
List = [X | create_towers(X - 1)],
List1 = lists:sort(List),
io:format("Tower1: ~p ~n", [List1]).

当我运行该功能时:

67> hanoi:create_towers(3).
Tower1: [1] 

** exception error: no function clause matching lists:sort([2|ok]) (lists.erl, line 479)
     in function  hanoi:create_towers/1 (hanoi.erl, line 9)
     in call from hanoi:create_towers/1 (hanoi.erl, line 8)

1 个答案:

答案 0 :(得分:2)

io:format/2评估(返回)原子ok,因此当您致电lists:sort(List)时,您会在该列表的末尾找到ok。你可能希望有一个功能来创建塔,另一个功能是打印它们,因为这是两个不同的问题。