問題タブ [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.
scheme - ラケット (スキーム) エラー: 引用符の後にシンボルの名前が必要でしたが、一部が見つかりました
Dr. Racket バージョン 5.3.6 でこのコード (The Little Schemer) を実行します。
quote: expected the name of the symbol after the quote, but found a part
そしてそれはエラーをスローします:(quote ()))
部分的に。ここで私が間違っていることは何ですか?
scheme - 小さな計画者 - IDE
「The Little Schemer」という本を読んでいて、本のコードをいじることができる IDE を探しています。DrRacket と REPL を調べましたが、これらがこの学習目標に最適な IDE であるかどうかはわかりません。また、本のコードがすでにプラグアンドプレイ/すぐにコピーできるソース/ウェブサイトはありますか? よろしくお願いします、W
recursion - Little Schemer: 長さ ≤ 2 のリストのみをサポートする write 関数
本The little schemerでは、長さが1以下のリストのみをサポートするこの関数を見つけました。
段階的に学習し、 2以下の長さのリストのみをサポートする同様の関数を作成したいと考えています。
次のようなコードを提供して、この質問に答えないでください。
この関数は任意の長さをサポートするためです。
そして、私はすでに次のような関数を書く方法を知っています:
私の目標を達成するために。しかし、このコードは最初のスニペットから一歩離れています。
たぶん、私は変更すべきではありません:
recursion - 「自然再帰」の定義は何ですか?
The Little Schemerの第三の戒めは次のように述べています。
リストを構築するときは、最初の典型的な要素を記述し、それを自然再帰にコンスします。
「自然再帰」の正確な定義は何ですか? 私が質問している理由は、ダニエル・フリードマンによるプログラミング言語の原則に関するクラスを受講していて、次のコードは「自然に再帰的」とは見なされないためです。
ただし、次のコードは「自然に再帰的」と見なされます。
私は「不自然に再帰的」なコードの方が好きです。ただし、そのようなコードは忌み嫌われるものと見なされます。関数を末尾再帰形式で記述すべきではない理由を尋ねると、副講師は単に「自然再帰を台無しにするな」と答えました。
「自然に再帰的な」形式で関数を書くことの利点は何ですか?
scheme - 1つの関数を使用してSchemeで数値が負かどうかを判断する
The Little Schemer を読んでいて、負の数の扱い方に興味を持ち始めました。数値が負か正かを判断する関数を構築する方法を理解することは、素晴らしい挑戦のように思えました。
これまでのところ、私はこの解決策を持っています:
これはうまく機能しているように見えますが、私の質問はnegative?
、ヘルパー関数なしで正しくできるかどうかです。
scheme - 緯度ですか?スキームのプリミティブ関数?
l が次のように定義されているとします。
l は現在、アトムのリストにバインドされています。
Little Schemer では、lat? という単純な関数を紹介します。アトムのリストとしての引数の分類に応じて #t または #f に評価されます。例えば、
l は 3 つのアトムのリストであるため、 #t と評価される必要があります。
ただし、lat? を呼び出すように求められたときに、スキーム インタープリター ( repl.it ) がエラーをスローします。
緯度を仮定するのは間違っていますか?はSchemeにとって原始的ですか?
また、その場合の再投稿はご容赦ください。
lambda - ラムダは本の「小さな計画者」のアトムですか?
シンプルなスキーマ インタープリタを実装する本「The little schemer - 4th edition」の第 10 章を読んでいます。:atom?
188ページの機能を除いて、他のすべてのコンテンツは問題ありません。
私はこの行について明確ではありません:
本の前から、non-primitive
はラムダ定義に対応しています。
次の値を持ちます (環境を渡しますtable
):
これは、本の中でラムダ定義が , であることを意味しますatom
か?
そうだと思いますが、本に記載されている関係を見つけることができないので、よくわかりません.
scheme - コレクタ関数はSchemeでどのように機能しますか?
私は、Scheme でのコレクター関数の使用法を理解するのに苦労しています。私は本「The Little Schemer」(Daniel P. Friedman と Matthias Felleisen 著) を使用しています。いくつかの説明を含む包括的な例は、私を大いに助けてくれます。コレクター関数を使用する関数の例は、次のスニペットです。
...呼び出しの例を使用して(identity '(a b c) self)
、 being とself-function
beingを呼び出します(define self (lambda (x) x))
。このidentity
関数は指定された list を返すl
ため、指定された呼び出しの出力は になります(a b c)
。使用されている正確な言語は、R5RS レガシー言語です。