問題タブ [sicp]
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.
lisp - SchemeとCommon Lispの実際の違いは何ですか? (または Lisp の他の 2 つの方言)
注: 私は、どちらを学ぶべきか、どちらが優れているか、またはそのようなことを尋ねているわけではありません。
SICP の無料版を手に取ったのは、それが読みやすいと感じたからです (私はそれについて良いことを聞いたことがあり、プログラミングのその種の側面に興味があります)。
私はSchemeがLispの方言であることを知っています.SchemeとCommon Lispの実際の違いは何ですか?
「CLにはより大きなstdlibがあります...スキームは実際のプログラミングには適していません..」についてはたくさんあるようですが、「これはCLがこれ/これを持っているためです」という実際のことはありません。
lisp - SICP car/cdr 練習問題
ここでSICPの「オンライン チューター」を試しています。
私は次の質問を見ています:
すでにフォームを評価していると仮定します
値が以下のリスト構造である car、cdr、および thing のみを使用します。
(1)
1
(2 3)
(3)
私は最後のものに問題があります。バッククォートとアンクォートを使用する方法を見つけましたが、オンライン チュートリアルでは答えが受け入れられません。チキンスキームのインタプリタを使用:
これを行う別の方法はありますか?
scheme - 関数 put と get を SICP、Scheme、演習 2.78 などで取得するにはどうすればよいですか
SICP で演習 2.78 を実行しようとしていますが、関数 put と get が不明です。pretty big、racket、r5rs、mit-scheme、mzscheme などの複数の言語を試しました。SICP サポート (http://www.neilvandyke.org/sicp-plt/) もダウンロードしましたが、役に立ちませんでした。これらの機能を動作させるにはどうすればよいですか?
scheme - スキーム、SICP、R5RS、なぜ遅延は特別な形式ではないのですか?
これは、ストリームが議論されているSICPの3.5章に関するものです。アイデアは次のとおりです。
cons-streamの2番目の部分を評価するべきではないので、「hey」を出力するべきではありません。これは実際に発生します。次の出力が得られます。
hey(1。#<promise>)
だから私の結論は、遅延は特別な形として実装されていないということですか?それとも私は何か間違ったことをしていますか?私は次の実装を使用します:
遅延がデフォルトのR5RS実装です。これは実装の誤りですか、それとも私はそれを正しく行っていないか、理解していませんか?
clojure - Clojure で Simpson のルールを使用しようとすると、キャスト エラーが発生するのはなぜですか?
Clojure を使用して SICP のいくつかの演習を実行しようとしていますが、Simpson のルールを実行する現在の方法 (例 1-29) でエラーが発生します。これは遅延/熱心な評価と関係がありますか? これを修正する方法についてのアイデアはありますか? エラーとコードは次のとおりです。
java.lang.ClassCastException: user$simpson$h__1445 は clojure.lang.Numbers.divide で java.lang.Number にキャストできません (Numbers.java:139)
コードは次のとおりです。
lisp - なぜ適用はLisp評価者にとってそれほど重要なのですか?
SICP の第 4 章を読みましたが、最初のセクションにエバリュエーターを実装するための最も重要な機能がリストされているevalことがapplyわかりました。これevalは非常に重要であることは理解していますが、なぜapplyそれほど重要なのでしょうか? apply一部の言語では、Javascript のようにまったくありません。
編集: Javascript に適用がないことについて私が間違っていることについて申し訳ありませんが、無視してください。
scheme - ストリームを使用して交互の符号を持つ数値を生成するためのより良い説明
ここのコードは、次のような数値を生成できます[1 -2 3 -4 5 -6 7 -8 9 -10 ...]
それが交互の記号を生成する方法をよく理解していません。誰かが私がこれを視覚化するのを助けるために私にもっと良い説明を教えてもらえますか?
mit-schemeでコードを実行できます。
python - Pythonは実行を遅らせました
Lispで遅延リストとしてストリームを実装するには、 Lispマクロを使用することをお勧めします。
PythonとPerlが同じことをする方法は何でしょうか?
編集。ストリームのようなクールな構成を使用することは可能ですか?
PythonやPerlなどの言語で
lisp - LISP SICP ビデオ講義 2a 平均湿った質問
次のコードでは、変数が値を取得する方法を理解しようとしてwhatamiいます。ロジックに従うと、プロシージャー(lambda (y) (/ x y))はメソッドに渡すパラメーターであり、average-dampそのメソッド内で変数として表されていることがわかりますf。実行する必要があるようですが(/ x y)、(average (f whatami) whatami)実行の順序がわかりません。どんな助けでも大歓迎です。
clojure - Clojureを使用して、置換モデル[Sicp]を支援します
私はsicpブックを研究していますが、手順の置換モデルに疑問があります。
この手順は、演習1.10の一部です。次のパラメーター(A 1 10)を使用してREPLで関数を実行すると、結果は1024になります。置換モデルを使用して結果を検証することにしましたが、結果は2048でした。
これは私が書いた代替モデルです。何か問題がありますが、何がわかりません。
誰かが私が間違ったことを示すことができますか?質問の長さでごめんなさい。