週期我定義爲用戶的事實清單:序言:消除間接關係
user(@michael).
user(@ana).
user(@bob).
user(@george).
user(@john).
等。此外,我還有一組事實爲:
follows(@michael,@ana).
follows(@ana,@bob).
follows(@bob,@michael).
我想寫的關係是間接的(用戶1,用戶1),這將告訴我,如果USER1間接如下user2的。 但是,我無法消除循環關係。
就像在給出的例子中,michael - > ana - > bob - > michael會引起一個循環。
從間接(user1,user2)的結果中消除這些循環的最佳方法是什麼?
爲什麼你用'@'作爲前綴名? – false 2014-12-02 22:16:27
@false,我正在嘗試使用prolog創建twitter,並且給出的規則之一是用戶名以@開頭。 – na899 2014-12-03 04:16:31
嘗試'write_canonical(@abx).'它給出'@(abx)'。也就是說,'@'是一個前綴運算符(SWI)。如果你真的想在名字中用@寫''@ name'' – false 2014-12-03 09:18:29