1
我是Prolog的新手,並且遇到了這種練習練習。該問題要求定義一個謂詞Prolog列表的交錯元素
zipper([[List1,List2]], Zippered). //this is two lists within one list.
該謂詞應該將List1的元素與List2的元素交錯。
例如,
zipper([[1,3,5,7], [2,4,6,8]], Zippered) -> Zippered = [1,2,3,4,5,6,7,8].
zipper([[1,3,5], [2,4,6,7,8]], Zippered) -> Zippered = [1,2,3,4,5,6,7,8].
到目前爲止,我有兩個不同的列表中選擇一個解決方案:
zipper ([],[],Z).
zipper([X],[],[X]).
zipper([],[Y],[Y]).
zipper([X|List1],[Y|List2],[X,Y|List]) :- zipper(List1,List2,List).
我不知道我怎麼能對一個列表翻譯這個解決方案。任何關於我可以開始的建議都會非常有幫助!
這似乎很容易,因爲你已經把所有的成分。您只需要以正確的方式調用謂詞:'zipper([[List1,List2]],Zippered): - 拉鍊(List1,List2,Zippered).'注意'[[List1,List2]]'是絕對的**不是**代表一對清單的好方法。要麼使用單獨的參數,要麼使用習慣的'( - )/ 2'運算符來表示對:'List1-List2'。 – mat