1
我想要在[a, b, c, d]
中翻譯像X = a(b(c(d)))
這樣的表達式。平整嵌套表達式
我想我必須迭代/遞歸運算符=..
,但我不知道如何。我試過
flatten([], []).
flatten(Exp, X) :- Exp=..[H,T], flatten(T, Y), X is append([H], Y).
但它似乎沒有工作。
有人可以幫助我嗎?
我想要在[a, b, c, d]
中翻譯像X = a(b(c(d)))
這樣的表達式。平整嵌套表達式
我想我必須迭代/遞歸運算符=..
,但我不知道如何。我試過
flatten([], []).
flatten(Exp, X) :- Exp=..[H,T], flatten(T, Y), X is append([H], Y).
但它似乎沒有工作。
有人可以幫助我嗎?
只是一個問題:哪個是'= ..'運算符的名字? – Aslan986
它有一個奇怪的名字:[univ](http://www.swi-prolog.org/pldoc/doc_for?object=%28%3D..%29/2)。我認爲是爲了像'普遍訪問'... – CapelliC
@ Aslan986順便說一句通常在Prolog中謂詞包括arity,並且運算符被'('和')':'(= ..)/ 2'包圍。 – m09