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_表現(ドットファンクタ' .')のように2つの表現(リスト表現)を持つ構造体(リスト)を使用しています。リストの表現か、ドットファンクタを使用する_cons_表現のどちらかを使用して、構造体(構造体)を作成します。 – gusbro