尝试模拟河内的塔式游戏,但我无法正确打印列表。
-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)
答案 0 :(得分:2)
io:format/2
评估(返回)原子ok
,因此当您致电lists:sort(List)
时,您会在该列表的末尾找到ok
。你可能希望有一个功能来创建塔,另一个功能是打印它们,因为这是两个不同的问题。