2013-05-12 226 views
1

我目前正在學習Prolog中的謂詞邏輯。我無法回答關於該主題的問題,並想知道使用Prolog謂詞解決此類問題的步驟。我有一個場景,必須使用兩個不同的謂詞名稱在Prolog謂詞中表示。Prolog謂詞

  1. 甲乙結婚
  2. 乙喜歡Ç
  3. C和d結婚
  4. d喜歡Ë
  5. ˚F喜歡乙
  6. Ë喜歡乙
  7. E和G爲已婚
  8. A贊G
+0

http://cs.stackexchange.com/也許是提問這樣一個問題的好地方。 – 2013-05-12 00:10:23

+3

@CiaranG不,對於像Prolog編程這樣的問題,這是正確的地方。 – 2013-05-12 14:45:13

回答

2

只要寫下它所說的話。

are_married(a,b). 

likes(b,c). 

等等。到目前爲止,我們已經使用了兩個謂詞。

在Prolog中,原子用小寫字母開頭的標識符表示。以大寫字母或下劃線開頭的標識符_表示邏輯變量。

+0

它們都可以放在兩個謂詞中嗎? ((a,b),(c,d),(e,g))。 – DrKhan 2013-05-12 15:56:09

+1

@DKhan不,那不是Prolog的工作方式。你當然可以定義另一個謂詞'married_couples([(a,b),(c,d),(e,f)])''。但是,爲了得到一對已婚夫婦,你不得不花費一些工作。 – 2013-05-12 16:17:48

+0

這是否適用於以下情況,我產生了兩個謂詞:
1. is_married([a,b],[c,d],[e,g])。2. likes([b,c],[d,e],[f,b],[e,b],[a,g])。 – DrKhan 2013-05-15 12:56:18