問題タブ [logic-programming]

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.

0 投票する
2 に答える
1119 参照

logic - 論理とカリー・ハワード対応についての質問

論理プログラミングの基礎と、型システムと従来の論理との構文的類似性の現象との基本的な関係について教えてください。

0 投票する
1 に答える
431 参照

logic - 関係節論理の質問: Herbrand 解釈とは

私はリレーショナル句の論理を理解するのに苦労しています.これが質問する場所であるかどうかはわかりませんが、誰かが次の質問でガイダンスを提供できれば、改訂に大いに役立ちます.

P をプログラムとします。

質問: P の Herbrand 解釈はどれですか?

0 投票する
4 に答える
3605 参照

prolog - より興味深いまたは強力なものは何ですか:カレー、マーキュリーまたはラムダ-プロローグ?

スクラッチ/リバースエンジニアから実装するのに、どの正式なシステムがより興味深いかについてお聞きしたいと思います。

論理/宣言型プログラミングシステムの既存のオープンソースプロジェクトをいくつか調べました。私は自分の自由な時間に似たようなものを作るか、少なくとも実装の一般的な考え方を理解することにしました。

これらのシステムのいくつかが、論理とその計算モデルとの関係における現代の学術調査の表現力と簡潔さのほとんどを提供するならば、それは素晴らしいことです。

少なくとも概念レベルで何を勉強することをお勧めしますか?たとえば、Lambda-Prologは、特に高次の関係を可能にするため興味深いものですが、AFAIKは直観主義論理に基づいているため、排中律の原則がありません。それは一般的に私にとって不利です。

また、あまり人気がないが、より表現力豊かで強力な最新の論理プログラミングシステムについての提案を歓迎します。

0 投票する
4 に答える
509 参照

functional-programming - 宣言型 I/O に対するこのアプローチの問題点があるとすれば、それは何か

これが「プログラム言語設計」ではなく「プログラミング」にどの程度当てはまるかは正確にはわかりません。しかし、問題はこれです:

簡単にするために、2 つの「特別な」リスト/配列/ベクトル/単に「ポート」と呼んでいるものは何でも、1 つは呼び出されstdIn、もう1 つはstdOut. これらはそれぞれ概念的に表します

  • プログラムの実行中にプログラムに与えられたすべてのユーザー入力
  • プログラムの実行中に端末に書き込まれたすべての出力

Haskell にインスパイアされた疑似コードでは、この完全に宣言的なプログラムを作成できるはずです。

どちらが期待どおりで、2 つの番号を要求し、製品を印刷します。トリックは、stdOut がプログラムの完了時に端末に書き込まれた文字列のリストを表し、stdIn が入力文字列のリストを表すことです。タイプエラーと、新しい行が入力された後に次の行のみを印刷するための安全策が必要であるという事実は、簡単にするためにここでは残しておきますが、おそらくそれを解決するのは簡単です.

では、このアイデアを実装する前に、私が見落としていた落とし穴はありますか? 私は似たような構造がすでに存在していることを認識していないので、私が見落としていた明らかな落とし穴があることを考慮しないのはナイーブです.

そうでなければ、私はもちろんそれを知っています:

これらの結果を上記と同様の方法で織り合わせる必要がある場合は、エラーになります。

0 投票する
0 に答える
905 参照

prolog - この論理記述を Prolog で解決するにはどうすればよいでしょうか?

それは私の最初の質問ですので、寛大にしてください。

私はプロローグ/CLPに書く論理的な問題を抱えています:


エイプリル氏はメイ氏が嘘をついていると言います.メイ
氏はジューン氏が嘘をついていると言います.
ジューン氏はエイプリル氏とメイ氏の両方が嘘をついている
.真実。"

私は紙の問題を解決し、解決策はメイ氏が真実を語るということです。

しかし、プロローグでどのように書くのですか?私はおそらく同様の解決策を見つけました: WHO KILL - 同様の解決策

しかし、私はそれを理解していません。誰かがこれを行う方法を知っているか、別の例を持っていますか?

できれば助けてください:):):)

0 投票する
3 に答える
298 参照

prolog - プロローグの節のヘルプ

なんらかの (おそらく明らかな) 理由で、Prolog が上記のコードの最後の行を受け入れないという問題に直面しています。その理由には次のことが関係しています。

私がちょうどしようとすると

それは正しく動作します。

何が問題ですか?私は、アルファとベータの両方の放出がある場合、陽子と電子の両方の検出があると述べようとしています.

ありがとう

0 投票する
5 に答える
5174 参照

iphone - iPhoneでプロローグコードを実行する

私は現在、作成しているアプリケーションでプロローグコードを実行する必要があります。AppleがAppStoreでこのようなものを許可することはおそらくないだろうと私は知っていますが、それも意図ではありません。これは、AppStoreに到達することのないプライベートプロジェクトです。

目的

この場合、プロローグはオブジェクト(たとえば電話など)とそのプロパティを記述するために使用されます。オブジェクトは、プロローグスクリプトで指定された座標を使用してOpenGLで描画されます。プロローグを使用する理由は、このオブジェクトが持つ機能のいくつかについてプログラムにクエリを実行する機能が必要であり、プロローグはこれを大幅に容易にするためです。結論:アプリからプロローグスクリプトをクエリする必要があります。

可能な解決策

  • Cで書かれた既存の実装を埋め込みます。これが機能するかどうかはわかりません。
  • 別のマシンでプロローグコードを実行し、ネットワークを使用してプロローグを照会します。
  • アプリ内である種のRubyVMを実行することは可能であるようです(私が理解している限り、shinycocosはこれを使用します)、これを使用してRuby Prolog実装の1つを実行できますか?
  • Prologに代わるものを見つけてください。これは私がプロローグで得るのと同じ可能性のいくつかを私に与える必要があります。

悲しいことに、グーグルは私にほとんど結果を与えないので、私はこのプロジェクトでかなり一人でいるかもしれないと感じています。経験や手がかりがあれば、とてもありがたいです。

0 投票する
2 に答える
14365 参照

prolog - データログvsCLIPSvsプロローグ

多くのプログラマーと同じように、私は大学でPrologを勉強しましたが、ごくわずかです。PrologとDatalogは密接に関連していることを理解していますが、Datalogの方が簡単ですか?また、Datalogは論理句の順序に依存しないことを読んだと思いますが、なぜこれが利点であるのかわかりません。CLIPSはおそらく完全に異なっていますが、私には理解できないほど微妙です。誰かが他の言語よりも言語の一般的なハイライトを提供してくれませんか?

0 投票する
1 に答える
435 参照

sicp - フォームへの追加はどのように機能しますか?(論理プログラミングに関するSICPのセクション)

私は現在、論理プログラミングに関するSICPのセクションで作業していますが、論理的推論、特にフォームへの追加ルールに関する例で立ち往生しています。それらはどのように機能しますか?私がよく理解していないのは、2番目のルールが最初のリストをどのようにcdr-downするかです。たとえば、次のようになります。

(ルール(フォームに追加()?y?y))

(ルール(フォームに追加(?u。?v)?y(?u。?z))(フォームに追加?v?y?z))

a)どのように連絡しますか:

b)そしてこれはどうですか:

c)そして最後に:

ルールマッチングを実行するために必要な特定の精神的なステップに興味があります。

前もって感謝します。

0 投票する
3 に答える
1721 参照

prolog - プロローグで複数のルールを定義する最短の方法

私はプロローグにもっと慣れるために練習問題を解こうとしています。

タスクは次のとおりです。

私はその演習を解決しましたが、ややかさばると思います。私のコードは次のとおりです。

誰かがそれらのルールを初期化するためのより良い方法を提案できますか?たとえば、Haskellでは次のようなことができます。

前もって感謝します。