簡體   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