問題タブ [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.

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

scheme - The Little Schemer のプリミティブ関数のスコープは正しくありませんか?

次の s 式を考えてみましょう。

私が試したほとんどのスキームの実装では、 this は と評価されます。これ(b c)cdr、 という名前のラムダに渡され、carのプリミティブな実装よりも優先されcarます。

The Little Schemer は、第 10 章の scheme で記述された scheme の実装を提供します。その実装はa上記の式を返しますが、これは私には正しくないようです。

その実装がそのように振る舞う理由は明らかです: プリミティブ関数の名前はhere*constではなくとして扱われます。数値でもブール値でもない はプリミティブとしてレンダリングされ、これは最終的に実際のプリミティブ組み込まれます。*identifier *const

正しい実装は、プリミティブ名を特別に検出するのではなく、プリミティブ名を実際のプリミティブ実装にマッピングするエントリを含む値関数に初期テーブルを作成することだと思います。

私の質問は次のとおりです。これは The Little Schemer のスキームの実装のバグですか? この行動はスキームで明確に規定されているのでしょうか、それとも本書が書かれた 1974 年には明確に規定されていなかったのでしょうか?

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

racket - little schemar drracket エラーは、その定義の前に識別子を参照できません

初心者の質問です。小さなスキーマ ブックを開始し、Macbook に DrRacket をインストールして、いくつかのコード例を試してみました。

ラケット言語を選択すると、次のコード

エラーメッセージが表示されます:

R5RS 言語を選択すると、

エラーメッセージが表示されました:

私が何を間違えたか知っている人はいますか?

ありがとう

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

racket - 一部の関数が repl に読み込まれない

Little Schemer を使用して、独自の関数をいくつか定義する必要があります。私はそれらを定義しました.replがロードされた後、add1とsub1のみがreplに表示されます。Racket v7.0 を使用しています。

なぜ (atom?) がロードされないのかわかりません。s-expression をコピーして repl に貼り付けると、機能します。何か案は?