2011-07-24 24 views
0

假設我有一個列表Prolog的改變到一起

[p(X,Y) , h(n,U) , f(U,R)] 

我想改變到一起 和 分配一起可變 輸出應爲: 輸出:

Variabile = p(X,Y) , h(n,U) , f(U,R) 

你有什麼想法嗎?

+0

你在'Variable'有什麼期望?一個布爾值?我不認爲Prolog有這樣的概念。 – svick

回答

1

也許你想這樣的:

list_to_conj([H], H) :- !. 
list_to_conj([H | T], ','(H, Conj)) :- 
    list_to_conj(T, Conj). 

使用示例:

?- list_to_conj([], Variable). 
false. 

?- list_to_conj([a], Variable). 
Variable = a. 

?- list_to_conj([a, b], Variable). 
Variable = (a, b). 

?- list_to_conj([p(X,Y) , h(n,U) , f(U,R)], Variable). 
Variable = (p(X, Y), h(n, U), f(U, R)). 

?- list_to_conj([writeln(hello), writeln(world)], Variable), call(Variable). 
hello 
world 
Variable = (writeln(hello), writeln(world)). 
+0

哦,我的上帝Kaarel:D是的,它是 –

2

您只能將變量分配給變量。術語連接不是一個有效的術語。

+0

prusswan我想kaarel說怎麼做... –

+1

(術語,術語)是一個術語。如果你想要這樣的話,那麼[術語,術語]本來就會很好。讓我們只是說,你不明白你想要什麼 – prusswan

+1

是的好我不知道我想要什麼,但有人給了我正確的答案...... -.- –