2011-11-07 27 views
2

在Prolog中,「..」是什麼意思?序言雙週期

我有這樣的代碼:

Goal=.. [GoalPredicate|Pos] 

,我不知道什麼是「..」是指

+1

一個微小的一句話:請問'Goal'在其後叫什麼名字?也就是說,「目標」或「呼叫(目標)」是否稍後出現?許多這種「(= ..)/ 2」可以被「call/2」,「call/3」替代。 – false

+0

是的,通過電話(目標)三,四行後 –

+0

然後你應該使用'call/N'!它是我們最被低估的功能之一。它支持清潔的高階編程。把相關來源包括三個變量的所有出現在你的問題中...... – false

回答

4

這種操作被稱爲「大學」和實例的GNU Prolog的手冊here描述:

8.4.3(= ..)/ 2 - 大學

模板

=..(+nonvar, ?list) 
=..(-nonvar, +list) 

說明

期限=..列表成功,如果清單是一個列表,它的頭是對應於期限的主函子的原子且其尾部是期限的參數的列表。

=..是預定義的中綴運算符(第8.14.10節)。

描述此操作其他好的資源: