如何在列表中創建一個術語,例如:3 * y * w * t^3:List = [3,*,y,...]而不使用以下謂詞:如何在Prolog中將術語轉換爲列表
t2l(Term, List) :-
t2l_(Term, List-X),
X = [].
t2l_(Term, [F|X]-X) :-
Term =.. [F],
!.
t2l_(Term, L1-L4) :-
Term =.. [F, A1, A2],
t2l_(A1, L1-L2),
L2 = [F|L3],
t2l_(A2, L3-L4).
有沒有簡單的方法?
嘗試最普遍的查詢:' - term_list(期限,列表).'這使您只有一個* *答案,其省略了許多有效的解決方案。使用我發佈的版本,您可以使用:'? - phrase(term_to_list(T),Ls).'和**根據需要生成許多有效答案。我強烈建議儘可能使程序儘可能通用,以便真正從聲明範例中受益。 – mat