3
如何在Prolog中將元素追加到列表的開頭?我需要的最終結果被稱爲像這樣:將元素追加到Prolog中的列表開頭
pushFront(8, [3, 1], NewList). % NewList is now [8, 3, 1].
我試圖實現它,如下所示:
pushFront(Item, [], [Item|_]). %Problematic
pushFront(Item, [OldDequeH|OldDequeT], NewDeque) :-
leftPush(OldDequeH, OldDequeT, [Item|NewDeque]).
但它不工作,我的想法TBH。任何人都可以描述我的實施有什麼問題以及需要進行哪些更改才能正常工作?
聖!就是這麼簡單...我有時候很笨,謝謝btw :) –
問:爲什麼你把cons作爲一個函數而不是函數? –
@MathuSumMut:在Prolog中沒有函數(除非你考慮在'is'的右邊使用的函數),你有用戶過程和系統謂詞。但是,在這裏你只是使用了一個Prolog有兩個表示的結構(列表)(列表表示,如'[item,item | TailItems]'和_cons_ representation(點函子'.')。你可以建立一個列表(結構)通過使用列表表示或使用點函子的_cons_表示。 – gusbro