繁体   English   中英

Prolog 写列表函数退出条件

[英]Prolog write list function exit condition

我是 Prolog 的新手,正在尝试定义一个简单的函数来写一个列表。 到目前为止,我有;

printList([Head|Tail]) :-
  write(Head), nl,
  printList(Tail).

当我像printList([[1,2],[3,4],[5,6]])这样调用这个函数时printList([[1,2],[3,4],[5,6]])它写道:

[1,2]
[3,4]
[5,6]
false

除了显示在列表底部的 false 之外,上面的输出是正确的。 我假设 is 显示为 false 因为在printList函数上没有某种退出条件来控制列表何时为空。 我该怎么做? 谢谢!

确切地!!! 你需要一个空列表规则。 写就好了:

printList([]).
printList([Head|Tail]) :-
  write(Head), nl,
  printList(Tail).

例子:

?- printList([[1,2],[3,4],[5,6]]).
[1,2]
[3,4]
[5,6]
true.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM