我是Prolog的新手,我正在尝试定义一个编写列表的简单函数。到目前为止,我有;
printList([Head|Tail]) :-
write(Head), nl,
printList(Tail).
当我将此函数称为printList([[1,2],[3,4],[5,6]])
时,它会写:
[1,2]
[3,4]
[5,6]
false
上面的输出是正确的,除了显示在列表底部的false。我假设显示为false,因为printList
函数没有某种退出条件来控制列表为空时。我该怎么做?谢谢!
答案 0 :(得分:3)
完全!!!你需要一个空列表规则。只需写下:
printList([]).
printList([Head|Tail]) :-
write(Head), nl,
printList(Tail).
示例:
?- printList([[1,2],[3,4],[5,6]]).
[1,2]
[3,4]
[5,6]
true.