0
鑑於謂詞Prolog的查詢初學者
hasAccount(Person,Bank,Amount)
- 這個人有一個帳戶在銀行,其餘金額lives(Person,City)
- 的人住在城市created(Person,Bank,Month,Year)
- 該人在本年度的月份在銀行開立賬戶
你怎麼會找到只用誰的人有最古老的賬戶在同一家銀行下面的「-
,
<
=<
>
>=
not
」運營商?我深深地迷失了!
鑑於謂詞Prolog的查詢初學者
hasAccount(Person,Bank,Amount)
- 這個人有一個帳戶在銀行,其餘金額
lives(Person,City)
- 的人住在城市
created(Person,Bank,Month,Year)
- 該人在本年度的月份在銀行開立賬戶
你怎麼會找到只用誰的人有最古老的賬戶在同一家銀行下面的「-
,
<
=<
>
>=
not
」運營商?我深深地迷失了!
基於您的評論,\+
用於not
(不proveable):
created(Who,Somebank,Month1,Year1),
\+ (created(_,Somebank,Month2,Year2), older(Month2,Year2,Month1,Year1))
與older/4
定義爲:
older(_Month2,Year2,_Month1,Year1) :- Year2 < Year1.
older(Month2,Year,Month1,Year) :- Month2 < Month1.
嘗試句話另一種說法:最早的帳戶是以下屬性不支持的帳戶:存在較舊的帳戶(「<」年或「=」年和「<」月)。 – danielp 2014-09-21 04:35:33
我的查詢類似於創建(Who,somebank,Month1,Year1),創建(Someone,somebank,Month2,Year2)和比較Month1&2和Year1&2。這是一個正確的方法嗎? – user1830954 2014-09-21 06:13:53
是的,但您必須否定第二部分(請參閱下面的答案) – danielp 2014-09-22 07:48:13