-1

我有一个关于“谜题 8”的 Prolog 项目。我是这种语言的新手。我有很多疑问,所以我来这里是为了解决至少一个。这是我的代码:

puzzle([1, 2, 3, 4, 5, 6, 7, 8, 0]).

affiche_puzzle :-
    puzzle(Puzzle),
    printe(Puzzle).

printe([]).
printe([H1,H2,H3|Puzzle]) :-
    format('~w ~w ~w~n', [H1, H2, H3]),
    printe(Puzzle).

我的疑问是为什么当我使用 printe([H1,H2,H3|Puzzle]) 结果是这个而不是列表的数字:

_G4716 _G4719 _G4722
Puzzle = [] ;

_G4843 _G4846 _G4849
Puzzle = [_G4843, _G4846, _G4849]...

如果您能帮助我,我将不胜感激!

4

1 回答 1

2

您必须使用合适的参数调用每个谓词:

?- affiche_puzzle。
1 2 3
4 5 6
7 8 0
正确。

?- printe([a,b,c,d,e,f,g,h,i])。
abc
def
ghi
真实。

于 2015-05-09T19:46:04.307 回答