こんにちはリストに要素を挿入しようとしていますが、結果は元のリストに保存されていて新しいものではないことが非常に重要です。
最終結果が保持される新しいリストを作成すると、インターネット上で書いたまたは見つけたコードはすべて成功します。
私の質問は誰でも関数を定義する方法を教えてくれます:insert(X、L)ここでXは要素、Lはリストです。リストに要素を挿入して同じリストを返す
答えて
いいえ、プロローグはそのようには機能しません。値を「変更する」ことはありません。変数は特定の値で統一できますが、すでに[1,3]
だった場合は、後で[1,2,3]
になることはありません。
ascheplerによれば、適切なリスト、つまりすべての要素が既にバインドされているリストを追加したり変更したりすることはできません。唯一の「変更」は、ある表現を別の表現と統一することです。
しかし、追加の要素を最後に追加することができる部分リストの概念があります。これは典型的には差異リストとして知られていますが、その名前はすぐには理解できません。
空のリストではなく、フリー変数Xで始めるとします。しかし、XからXを減算して「無」と考えるかもしれません。つまり、空の差分リストはX - Xで表されます。ここでマイナス「 - 」は純粋に正式な演算子です。差異の評価は意図されていない。これは、あなたが(おそらく)したいことを達成するために差異リストをどのように使うことができるかからわかるように、便利な構文です。
次のように私たちは、差分リストに要素を追加することができます:ここで
insertDL(M,X-Y,X-Z) :- Y = [M|Z].
Mは、我々が追加する新しい要素である、XYは「古い」差分リストで、XZは「新」ですZが部分リストXの「開いた」尾部になるように、部分リスト[M | Z]を用いて以前に空いていた変数Yを統合することによって(Mが追加された)
最後に差異リストに項目を挿入すると、その時点の「フリーテール」を空のリスト[]に設定することでXを適切なリストにすることができます。この意味では、Xは最初に始めたときと同じ変数であり、自由変数から適切なリストへの段階的なステップで統一されています。
これはPrologプログラミングでは非常に強力なテクニックであり、それを快適に使用するにはある程度の練習が必要です。
[プロローグリストから差にリスト]
http://www.irisa.fr/prive/ridoux/ICLP91/node8.html
[プロローグで実装差異リスト]
http://www.cl.cam.ac.uk/~jpw48/difflists.pdf
:Web上でさらなる議論へのリンク[講義ノート:差分リスト]
http://www.cs.cmu.edu/~fp/courses/lp/lectures/11-diff.pdf
- 1. リストに要素を挿入する
- 2. 同じ数の要素を持つリストを返します
- 3. リストの要素をjavaの同じリストに追加
- 4. insertBeforeとappendChildを使用して、リストの先頭と末尾に同じ要素を挿入する方法は?
- 5. 要素を前と次の要素に基づいてリストに挿入する
- 6. リストの最後の要素として要素を挿入する
- 7. pythonのリストの最後に要素を挿入しますか?
- 8. リストの特定の場所に要素を挿入します。
- 9. リスト内のボタンをリスト要素と同じ高さにします
- 10. XMLタグ内の要素のリストを挿入します
- 11. リストの要素と同じリスト内の他の要素との乗算
- 12. 配列の配列の要素に、要素によって、要素をリストに挿入し
- 13. Prolog - リストに要素を挿入する方法
- 14. Javaのカスタム配列リストに要素を挿入する方法
- 15. 各リスト要素にリンクタグを挿入する
- 16. XSLT 1.0を使用してXMLリストの中に要素を挿入する
- 17. TCL/TKスクリプトで反復中に要素をリストに挿入
- 18. DataContract XMLのデシリアライズ - 同じ要素内の要素とプロパティのリスト
- 19. 同じページにあるリスト要素を管理する方法
- 20. リストの要素を同じ行に出力する
- 21. 挿入ヌルは、リスト内のすべての第七の要素
- 22. Sqliteクエリ:フィールドのすべての要素に同じ値を挿入します
- 23. Prolog - 同じ要素に対して2つのリストを検索する
- 24. Red-Black Treeに同じ要素を挿入していますか?
- 25. リストの長さ、要素を挿入する
- 26. あるリストの要素を挿入する
- 27. リストのリストにプロローグを挿入する
- 28. リストにリストを挿入するScheme
- 29. リストにリストを挿入するPython
- 30. リストのリストに繰り返し要素がありますpython
リストを適切に更新する必要がある場合は、あまりにも絶対に考える必要があります。解決しようとしている問題について詳しく説明できますか? – Juliet