如果我有一個這樣的程序,並且我想要一個人的最後一個項目沒有後面的逗號,我該怎麼做?最好使用DCG嗎?這將如何工作?文件輸出的DCG
male(bob).
male(dave).
male(fred).
male(dereck).
likes(bob,cake).
likes(bob, pie).
likes(bob, apple).
likes(dave, fish).
likes(dave, meat).
likes(dave, potato).
likes(dave, pear).
likes(fred, water).
likes(fred, beer).
likes(dereck, wine).
likes(dereck, cake).
print:-
forall(
male(Person),
(
format("~w, ",[Person]),
forall(
likes(Person,Item),
format("~w, ",[Item])
),
format("~n~n",[])
)
).
的出來說就是:
bob, cake, pie, apple,
dave, fish, meat, potato, pear,
fred, water, beer,
dereck, wine, cake, %<I dont want these last commas
爲什麼你需要打印?這是某種報告嗎?或者僅僅是爲了看看事實數據庫中的內容? – 2014-12-04 13:33:31
這是寫入文件作爲輸入到程序treeliker http://ida.felk.cvut.cz/treeliker/TreeLiker.html – user27815 2014-12-04 14:14:07