問題タブ [eclipse-clp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
prolog - ECLiPSe の整数のリストから地上データの配列を作成する
make_graph_symbolic/3
ノードが地上データの配列である必要があるgraph_algorithmsライブラリのを使用しようとしています。
このグラフはマトリックスから作成しているため、ノード名は XY です。X は特定の要素の行、Y は列です。私が書いた別の述語はnodeNames/2
、すべての名前 (整数値) のリストを生成します。
ただし、このリストを make_graph_symbolic 述語に提供しようとすると、使用している述語の 1 つに対して次のエラーがスローされます。
[](11, 12, 21, 22) を指定して手動で実行しようとすると、正常に動作します。これは私の配列が間違っていることを示していますが、整数値が地面であるため、その理由はわかりません。
実際の質問:整数のリストを、同じ整数を含む地上データの配列に変換することは可能ですか?
私はプロローグと ECLiPSe の経験が少ないので、これが可能かどうかはわかりません。私は数日間解決策を探していました。最も近いのはapply([], [list of ints])述語を使用することですが、これは望ましい効果がありません (リストを評価しようとするため)。
編集:言及するのを忘れていました:行列を線形化しmake_graph/2
、 make_graph_symbolic-predicate の代わりにを使用することは、最終的に行列のすべての要素がグラフで使用されるわけではないため、実際にはオプションではありません。
Edit2:例: 次のマトリックスからノード名を抽出したいとしましょう:
必要なノード名は 11、12、21、および 22 です (最初の数字は行、2 番目の数字は列です)。これを行うには、各行を次の述語に提供します。
基本的には、リストを調べて、ベースケースに到達するまで各ノードをリストに追加します。上記のグラフの場合、次のリストになります。
次に、ノードリストとして make_graph_symbolic-predicate にフィードしようとします。
これにより、上記のエラーが発生します。ただし、次のようにハードコーディングすると:
それは正常に動作します。したがって、基本的に私が求めているのは、[22, 21, 12, 11] を [](22, 21, 12, 11) に変換する方法です。