因此,作爲我工作的一部分,我的代碼需要將所有解決方案打印到查詢中,但不使用findall/3
謂詞。我已經做了一些閱讀,並且有一些方法可以將解決方案添加到列表中等等。我試圖自己做這件事,但沒有成功;因此我希望有人能夠展示如何在不使用findall的情況下打印所有解決方案。SWI-Prolog:收集沒有findall的所有解決方案
程序代碼如下:
solutions(Q, 100):-
Q = [X, Y, S],
between(2,50,X),
between(2,50,Y),
S is X+Y,
Y > X,
S =< 50.
的Q和100在那裏,因爲它需要的程序的其他部分,從而忽略了現在。當我使用?- solutions(Q, 100)
查詢時,我得到結果[2,3,5]
,[2,4,6]
,[2,5,7]
等,但顯然我需要按;
才能獲得每個新結果。我需要顯示所有這些,而不需要按;
並且不使用findall。
你是否被允許使用'assert'? –
http://stackoverflow.com/questions/7647758/prolog-findall-implementation –