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

0 投票する
0 に答える
363 参照

functional-programming - 割り当てステートメント - 有害と見なされますか?

ボブおじさんがSICPの本と課題ステートメントについて話しているこのビデオに出会い、考えさせられました (そしてSICP の対応する章を読みました)。

リストされている引数 (ローカル状態、副作用など) は、初版が1984 年に発行されたことを考えると、 Java や C# などの現代の言語では依然として問題であるかどうか疑問に思っています。その時は問題だったのかもしれません。それは今でもありますか?それとも何か変わった?

たとえば、Java には不変 Stringの s があります。割り当てが有害であると私が考えることができる特定の領域は同時実行性です(間違っている場合は修正してください)。割り当てがないということは、同期もリソースのデッドロックもないということですよね?

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

scheme - r5rsファイルをラケット内の別のファイルに含める

私のコースの1つは、SICPの一部のセクションでDrRacketを使用しています。私たちはメタサーキュラーエバリュエーターに取り組んでおり、作業で使用する必要のあるR5RSコードファイル(set-car!およびset-cdr!)があります。R5RSファイルは約500行なので、別のバッファーに保存することをお勧めします。どうすればそれを回答バッファの定義に含めることができますか?がracket/include必要なよう#lang racketですが、その言語ではありませんset-car!set-cdr!

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

lisp - SICP演習3.8-手順が機能する理由 (私はそれが環境についてだと思います)

SICPの演習3.8は、次のように説明されています。

セクション1.1.3で評価モデルを定義したとき、式を評価する最初のステップはその部分式を評価することであると述べました。ただし、部分式を評価する順序(たとえば、左から右または右から左)を指定したことはありません。割り当てを導入するとき、プロシージャへの引数が評価される順序は、結果に違いをもたらす可能性があります。+への引数が左から右に評価される場合は評価(+(f 0)(f 1))が0を返し、引数が右から左に評価される場合は1を返すように、単純なプロシージャfを定義します。

fそして、最初に電話をかけた場合、もう一度電話をかける(f x)と必ず戻るように手順を書きました。しかし、なぜそれが機能するのか正確にはわかりません。私が書いた手順は次のとおりです。xf

0 投票する
3 に答える
622 参照

lisp - 私は SICP を読んで従おうとしていますが、オンラインで見つけた Lisp インタープリターが DEFINE キーワードで失敗するのはなぜですか?

これは本です...

http://mitpress.mit.edu/sicp/full-text/book/book.html

ここに示されているコードを操作するためにどのインタープリターを使用する必要があるか考えていますか?

これまでのところ、オンラインでいくつかの Lisp インタープリターをダウンロードして試してみましたが、DEFINE を使用しようとするとエラーが発生するだけです。

例:

このセクションから: http://mitpress.mit.edu/sicp/full-text/book/book-ZH-10.html#%_sec_1.1

ここに入力してください: http://www.ugcs.caltech.edu/~rona/tlisp/

「lispbox」でも同様の結果が得られました。

Ah HA: http://sisc-scheme.org/sisc-online.php動作します。チップ blabla999 をありがとうございます。すぐに回答を受け付けます。

さらに調査すると: Scheme != Common Lisp

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

lisp - SICPセクション3.4でのミューテックスの実装

著者がシリアライザーのミューテックス部分を実装するとき、彼らはと呼ばれるリストを使用しますcell。しかし、リストには1つの要素しか含まれていないので、変数を使用しないのはなぜですか?

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

lisp - 集合の表現と理解に問題がある

具体的には、ここで言及されているセットの概念: http://mitpress.mit.edu/sicp/full-text/book/book-ZH-16.html#%_sec_2.3.3

データ構造がどのように機能し、それらをトラバースする方法は理解していますが、その使用を概念化するのはより困難です。

誰かがそれを別の言葉で説明してくれませんか?おそらくそれはクリックに役立つかもしれません. 本当にありがとう。

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

language-agnostic - 自然数の教会の数値符号化は不必要に複雑ですか?

私が読んでいるコンピュータープログラムの構造と解釈の本は、ゼロとインクリメント関数を定義することによって教会の数字を提示しています

これは私にはかなり複雑に思え、それを理解して 1 つ ( λf.λx. f x) と 2 つ( ) を導出するのに非常に長い時間がかかりましたλf.λx. f (f x)

ゼロを空のラムダとして、代わりにこの方法で数値をエンコードする方がはるかに簡単ではないでしょうか?

λ. λこれで、1 つ ( ) と 2 つ( ) などを導出するのは簡単λ. λ. λです。

これは、ラムダで数値を表現するためのはるかに明白で直感的な方法のように思えます。このアプローチには何らかの問題があり、教会の数字がそのように機能する正当な理由がありますか? このアプローチはすでに証明されていますか?

0 投票する
4 に答える
14049 参照

scheme - Mit-Schemeのnull値?

mit-schemeのnull値表現とは何か教えてもらえますか?SICPブックでは、「nil」である必要がありますが、機能しません。ありがとう。

0 投票する
3 に答える
263 参照

scheme - なぜ構文解析を実行から分離するのですか?

SICP第4章では、構文解析を実行から分離することによってメタサーキュラーエバリュエーターが変更され、evalプロシージャは次のようになります。

そして本はanalyze、実行プロシージャが何度も呼び出されるかもしれない間、これは式で一度呼び出されるので、これは仕事を節約するだろうと言っています。

私の質問は、この最適化はどのように機能するのかということです。再帰的なプロシージャ呼び出しでは機能しますが、他の場合はどうでしょうか。エバリュエーターは式を次々に評価し、eval同じ形式であっても各式で呼び出されます。