問題タブ [iso-prolog]
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 - 慣用句の好みのためのDCG
手動で作成したDCGルールを使用して、1つの単語よりも慣用句を選択します。DCGルールは次のようになります。
(:-)/2
の代わりにが使用されるため、最初の句は手動で作成され(-->)/2
ます。この手動で作成された句を、標準のDCGを使用する句に置き換えることはできますか?
よろしくお願いします
PS:ここにいくつかのテストデータがあります:
そして、ここにいくつかのテストケースがあります。重要なテストケースは最初のテストケースです。これは、n3のみを提供し、cons(n1、n2)は提供しないためです。最初のテストケースの動作は、特に望ましいものです。
prolog - Prologでファイル長をどのように切り捨てますか?
Prolog でファイルの長さを切り詰めるにはどうすればよいですか?
set_stream_position/2
ISO規格の述語しか見つかりません。set_stream_length/2
しかし、主要な Prolog システムには述語が見つかりません。
同様に、ストリーム プロパティがありますが、ストリーム プロパティposition/1
はどこにもありませんlength/1
。後者は を使用するのに役立ちますset_stream_length/2
。
回避策は何ですか?
さよなら
prolog - Prologオペレーターの優先順位
ユーザー入力は、a:b> c> d>e...などの形式で与えられます。入力を:(a、>(b、>(c、>(d、e)))に解析したいのですが、それは可能でしょうか?それを行うための提案はありますか?これでテストしました
入力は変更できません。どんな提案でもありがたいです。ありがとう!
prolog - /3 が翻訳するフレーズを確認する標準的な方法は?
私はGNU Prologの動作を掘り下げようとしています:
フレーズ/3 が何に変換されるかを確認する標準的な方法はありますか?
ISO DCG 提案 (*) によると、expand_term/2 が必要です。これで、次のことを確認できます。
これは、フレーズ/3 が私のテスト/3 でどのように使用されているかを教えてくれますか?
(*) ISO/IEC DTR 13211–3:2006 確定
節文法規則
Klaus Daessler
2012 年 11 月 20 日
http://www.complang.tuwien.ac.at/ulrich/iso-prolog/dcgs/dcgsdin121120.pdf
prolog - プロローグで頭のない節はどういう意味ですか?
Prolog プログラムの冒頭で、次のように表示されます。
頭のない節のようです。どういう意味ですか?
prolog - 同じアリティを持つすべての述語を見つける
のようなクエリを提示することは可能ですか?
アリティ 1 を持つすべての述語を返すことができますか? 一般に、変数を使用して述語名を参照することは可能ですか?
prolog - プロローグの再割り当て演算子
私はプロローグが初めてで、優先順位を変更してプロローグで演算子を再割り当てしようとしています。次の 4 つのエラーが発生しています。
最初の 2 つで、次のような同様のエラーが表示されます。
モジュロ 1 でもエラー (別のエラー) が発生します%
が、引用符で囲む必要がないためだと思われます (しかし、コメント マーカーと区別するにはどうすればよいでしょうか?)。
他の演算子 (加算演算子など:-op(500,yfx,+).
) を再定義しましたが、問題はありません。上記の3つだけでエラーが発生します。
誰でもこれに光を当てることができますか?
ありがとう!
javascript - Javascript の Prolog システム
Javascript は、他のプログラミング言語の実装言語として人気が出てきているようです。(C)LP から JavaScript への軽量コンパイルの記事 。ICLP 2012 はこれに注目しました。
Web 上には、Javascript で書かれた Prolog システムの概念実証プロトタイプがたくさんあります。
Javascript で書かれた現在の、積極的に維持されている、できれば ISO 準拠の Prolog システムは何ですか?
prolog - HiLog 用語は、現代の Prolog でもまだ有用ですか?
Hilog ターム (つまり、ファンクターとして任意のタームを持つ化合物) は、XSB Prolog (またはその他の Prolog) の強力な機能とみなされますか? 現在、この機能を使用している XSB プロジェクトは多数ありますか? たとえば、どれですか?
私が理解している限りでは、ISO 組み込みの call/N を使用して高次のプログラミングが同様に可能であるため、質問します。
具体的には、XSB が単に歴史的な理由で Hilog 用語を使用しているのか、それとも現在の ISO 標準と比較して Hilog 用語にかなりの利点があるのかを理解したいと思います。
prolog - Prologのアトムエスケープルール
Javaで任意の用語表現を使用して表現されたPrologプログラムをファイルにエクスポートする必要があります。アイデアは、Prologインタープリターが後で生成されたファイルを参照できるようにする必要があるということです。私の質問は、アトム用語を表すJava文字列をファイルに書き込む正しい方法についてです。
たとえば、文字列の中央にスペースがある場合は、ファイル内で一重引用符で囲む必要があります。
helloworld は 「helloworld」になります
また、エクスポーターは、エスケープする必要のある文字を考慮に入れる必要があります。
' は '\''になります
誰かが私にこれらの規則が指定された場所を教えてもらえますか?そして:これらの規則が主要なProlog実装者によって尊重されていると仮定できますか?(つまり、これらのルールに従って生成されたPrologプログラムは、ほとんどのPrologインタープリターによって正しく解析されますか?)