問題タブ [reasoned-schemer]

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 投票する
4 に答える
3191 参照

clojure - conda、condi、conde、condu

ReasonedSchemerを読んでいます。

私はどのように機能するかについていくつかの直感を持っていますconde

しかし、私は///が何をするかについての正式な定義を見つけることができcondeませcondaん。conducondi

https://www.cs.indiana.edu/~webyrd/を知っていますが、定義ではなく例があるようです。

conde、、、の正式な定義はどこかcondaにありますか?condicondu

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

clojure - Clojure.logic と The Reasoned Schemer の違い

Clojure.logic を使用してThe Reasoned Schemer (TRS)に取り組み、ここに記載されている相違点に注意を払いました。チャプター 3 のフレーム 24 に到達しました。TRS は次のことを報告しています。

生成する必要があります

今、私は `lolo as を実装しました

次の奇妙な結果が生成されます。

これは基本的に、私のloloが新しい変数を漏らしているソリューションを生成していることを意味します. パターンを見ようとして続けていれば、

しかし、霧の中で十分にはっきりと見ることができません。これに光を当てていただければ幸いです。それは私のloloのバグですか?clojure.logic のバグですか? TRS のソルバーと clojure.logic のソルバーの違いは合理的ですか? 結果をどのように解釈または使用できますか? どうすれば clojure.logic の結果を頭の中で予測できますか?

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

logic - The Reasoned Schemer : 演習 57 を理解していない

演習 (またはエントリ?) 57 では、ロジックがどのように流れるかを理解していません。問題は、次のことです。

ここで、'=' は実際には三重棒の統合 (?) 演算子です。以下を実行します。

本は答えを与えます:

私は答えが次のようになると思っていたでしょう:

私の推論は、(teacupo x) の 'x' は、最初にすべてのソリューションを通過し、すべてのソリューションのリストに統合する必要があるということです。しかし、teacupo は一度に 1 つのソリューションしか放棄しないようです。conde の私の解釈では、それが与える規則を使用すると、conde の行を調べて、行が成功した後、失敗したふりをして、変数を更新し、成功する次の行を見つける必要があるため、混乱します。解決策が機能する方法を考えると、そのコードのコンデは成功した行に戻り、茶碗コンデを強制的に失敗させ、次の可能な値をあきらめるように見えます。繰り返しになりますが、teacupo ソリューションはリスト内のすべてのコンデ ソリューションを放棄し、外側のコンデ コールに進むと考えていました。