2014-10-20 76 views
0

我發現下面的練習上www.learnprolognow.org,我試圖解決它,但一直沒能:Prolog的鍛鍊,相同的列表

寫謂詞swap12(List1,List2),檢查是否List1等同於List2,除了前兩個元素交換。

我現在擁有的一切:

swap12([X,Y],[Y,X]). 
swap12([X,Y|T],[Y,X|Z]) :- 
+0

你有什麼問題?你沒有指定任何。 – APerson 2014-10-20 18:11:59

+0

@APerson我加了我現在有的 – Stanko 2014-10-20 18:13:21

+1

你離得很近。爲什麼第二個謂詞子句中的兩個尾部('T'和'Z')有所不同,前提是它們與交換的前兩個元素不同? – lurker 2014-10-20 18:22:14

回答

0

就快:你只需要建立在每個列表中的前兩個之後的元素是相同的(提示:如果兩件事情都可以代表由相同的變量,他們是相同的)。事實上,你只需要一條規則。

+0

swap12([X,Y | T],[Y,X | Z]: - T = Z。 – Stanko 2014-10-20 18:24:14

+0

你不能自己測試嗎 – 2014-10-20 18:25:49

+0

目前不是behin筆記本電腦,但會在30分鐘內測試 – Stanko 2014-10-20 18:34:41