問題タブ [the-little-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.
ide - スキームを実践する環境、IDE、またはインタープリターはどれですか?
私はThe Little Schemerを読み進めてきましたが、自分で書き留めた Scheme コードをテストするには、どの環境、IDE、またはインタープリターを使用するのが最適かを考えていました。
scheme - Lisp/Schemeの'(アポストロフィ)とは?
私は自分自身でスキームを教え始めて 1 時間 1 日目です。言うまでもなく、私は何も理解していません。だから私はThe Little Schemerを読んでいて、このことを使っています:
通訳として。
'
たとえば、使用する必要があります
「未定義変数」エラーを回避します。本'
によると、 は Common Lisp のものです。
2 つの質問があります。
上記の通訳者は良い通訳者ですか?他にお勧めできますか?The Little Schemerと相性の良いものが必要です。
とは
'
?
scheme - The Little Schemer の Q および P 関数を Common Lisp に変換しますか?
Little Schemer の第 9 章で、著者は次の 2 つの機能を提示します。
そして、それらが次の実行で評価されることを提案します:
Common Lisp で P および Q 関数をどのように記述しますか?
(私は Y-Combinator を自分で翻訳しましたが、これは難しいと思います)
--ヘルパー関数--
(免責事項 - これは宿題の質問ではありません - これは私の理解と学習のためのものです)
lisp - 「The Little Schemer」の例から実際のSchemeへの構文の変更
私は最近、The Little Schemerの例に従い始めました。DrSchemeの例を試してみると、本の例からDrSchemeで記述できるものまで、いくつかのマイナーな構文変更があることに気付きました。
まず、DrScheme の言語として、Pretty Big
(レガシー言語の 1 つ) を選びました。
これは本の例を試すための正しい選択ですか?
構文の変更に関しては、たとえば、識別子を'
機能させるには、識別子の前に a を付ける必要があることに気付きました。
例えば:
「The Little Schemer」の本から例を試すときに注意する必要がある変更 (構文上のものかどうか) は他にありますか?
scheme - スキーム:なぜここでcondを使用する必要があるのですか?
eqan?
私は次のような(単純な、つまりなしの)one?
関数を書こうとしました:
しかし、私がそれをそのように呼ぶとき、上記はうまくいきません:
私はこのエラーで迎えられます:
( The Little Schemerから)それを書く正しい方法は次のとおりです。
単に返すのではなく、 cond
with句を使用する必要があるのはなぜですか?else
(= 1 n)
scheme - スキームの継続を理解するのに役立ちます
私はThe Little Schemerと協力して Scheme を学び、自分の環境で PLT-Scheme を使用しています。
The Little Schemerは再帰を大いに助けてくれました (今の私にとっては簡単です) が、「コレクター」を紹介し、関数全体を継続と呼んでいる本の一部に行き詰まっています。
これが彼らが使用したサンプルコードです。私は再帰要素を理解していますが、特にラムダ関数で行き詰まっています - 私の心はパスとそのラムダ関数の引数がどのように設定されているかをたどることができません(それらの唯一の呼び出しは再帰でそれらを再度呼び出すことであるため、関数本体内での具体的な使用はありません)。
ラムダ コレクターへの関数の再帰を介した計算のパスの内訳を誰かが多かれ少なかれ教えてくれれば、それは私を助けるかもしれません。
前もって感謝します!!
scheme - スキームの実装 - どういう意味ですか?
私は CS の初心者で、クラスのほとんどは Java です。私は現在、独学で「Little Schemer」を読んでおり、その方法を見つける過程で、Scheme の「実装」に関する多くの参照を見つけました。私の質問は、実装とは何ですか?
それらはSchemeの亜方言ですか、それとも別のものですか(DrSchemeは言語のさまざまな「フレーバー」を許可しているようです)?IDE、インタープリター、対話型ツールなどを組み込んだ特定のエコシステムに付けられた名前ですか?
他のすべての言語 (Java など) にもさまざまな「実装」がありますか、それとも「オープン」言語用に予約されているものですか?
ありがとうございました、
ジョス・ドラージ
scheme - Little Schemer の eqlist? 機能 - 代替バージョン?
「Little Schemer」の本を読んで、さまざまな機能を実行しています。通常、本と同じバージョンになりますが、2 つのリストの等価性をテストする関数である eqlist? についてはそうではありません。
私は自分のバージョンをテストしようとしましたが、私が投げたものは何でも通過します。それでも、「Little Schemer」バージョンとは少し異なります。また、何かが欠けているかどうかについて誰かの意見が欲しいです。
私のバージョン:
本のバージョン:
どちらの場合も、eqan の定義は次のとおりです。
ありがとうございました!
ジョス・ドラージ
recursion - これが DrRacket では機能するのに、コンソールからの Racket では機能しないのはなぜですか?
DrRacket の言語は Advanced Student に設定されています。を定義した後、IronScheme コンソールでも問題なく動作しsub1
ます。
エラーメッセージは次のとおりです。
clojure - mini-kanren cond-a cond-uとcond-eの違いは何ですか?
私はclojureでミニかんれんの実装を使おうとしました。しかし、cond-acond-uとcond-eの違いを理解するのに苦労しています。cond-eについてはかなりはっきりしているようですが、cond-aとcond-uの理解はひどく悪いです。
cond-eは一連の目標を取得し、それぞれを試行します...つまり、成功するすべてのブランチを試行します。
それどころか、cond-aとcond-uは、最初の述語が成功するブランチにコミットし、cond-aは、その後に成功する可能性のあるすべての統合を返します。cond-uは最初の成功した統合のみを返しますが...しかし、私がそれを使用すると、この理解は正しくないようです。誰かが私がこの理解を明確にするのを手伝ってもらえますか?