問題タブ [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.
racket - DrSchemeにファイルを含めるにはどうすればよいですか?
DrSchemeを使用してSICPを処理していますが、特定の手順(たとえばsquare)が何度も使用されていることに気づきました。毎回書き直さなくても他のプログラムに入れられるように別のファイルに入れたいのですが、どうすればいいのかわからないようです。
私はもう試した:
これらの作品はありません。明らかに私はストローをつかんでいます-どんな助けでも大歓迎です。
computer-science - SICPの統合アルゴリズムでは不要と思われるケース
ここでSICPで説明されている統合アルゴリズムを理解しようとしています
特に、プロシージャ「extend-if-possible」には、右側の「式」がすでに何かにバインドされている変数であるかどうかをチェックするチェック(アステリックス「*」でマークされた最初の場所)があります。現在のフレーム:
関連する解説は次のように述べています。
「最初のケースでは、照合しようとしている変数がバインドされていないが、照合しようとしている値自体が(異なる)変数である場合、値がバインドされているかどうかを確認する必要があります。もしそうなら、その価値を一致させるために。一致の両方の当事者がバインドされていない場合、私たちはどちらか一方にバインドすることができます。」
しかし、これが実際に必要な場合は考えられません。
それが話しているのは、現在、次のフレームバインディングが存在する可能性がある場所だと思います。
次に、?zから?yへのバインディングを「extendIfPossible」するように求められます。
その「*」チェックが存在する場合、「?z」を「?y」で拡張するように求められると、「?y」はすでに4にバインドされていることがわかり、「?z」を「4」で再帰的に統合しようとします。これにより、フレームを「?z=4」で拡張します。
チェックを外すと、「?z =?y」だけでフレームを拡張することになります。しかし、どちらの場合も、?zがまだ他の何かにバインドされていない限り、問題は発生しません。
?zがすでに他の何かにバインドされている場合、コードは「*」とマークされた部分に到達しないことに注意してください(?zがすでに一致していたものと統合するためにすでに再帰しているはずです)。
よく考えてみると、「最も単純な」MGU(Most General Unifier)を生成するための何らかの議論があるかもしれないことに気づきました。たとえば、他の変数を参照する変数の数が最小のMGUが必要な場合があります...つまり、置換{?x =?y、 ?y = 4} ...しかし、このアルゴリズムがこの動作を保証するとは思わない。「(?x 4)」を「(?y?y)」と統合するように要求した場合は、それでも{?x =?y、?y=4}になります。そして、動作が保証できない場合、なぜ追加の複雑さがあるのでしょうか。
ここでの私の推論はすべて正しいですか?そうでない場合、正しいMGUを生成するために「*」チェックが必要な反例は何ですか?
math - I can't find my error in this Scheme program for calculate PI
I am doing a Monte Carlo experiment to calculate an approximation of PI. From SICP:
The Monte Carlo method consists of choosing sample experiments at random from a large set and then making deductions on the basis of the probabilities estimated from tabulating the results of those experiments. For example, we can approximate using the fact that 6/pi^2 is the probability that two integers chosen at random will have no factors in common; that is, that their greatest common divisor will be 1. To obtain the approximation to , we perform a large number of experiments. In each experiment we choose two integers at random and perform a test to see if their GCD is 1. The fraction of times that the test is passed gives us our estimate of 6/pi^2, and from this we obtain our approximation to pi.
But when I run my program I obtain values like 3.9...
Here is my program:
My interpreter is MIT/GNU 7.7.90
Thanks for any help.
scheme - IronSchemeはSICPを介した作業に適していますか?
IronSchemeを使用した場合、SICPのコードとの非互換性はありますか?
scheme - スキームでの引用
以下はSICPの演習です。私はそれを自分で理解することができませんでした。なぜ私が理解するのを助けることができますか?
インタプリタに次のコードを入力します。
そして、それは「引用」を印刷します。なんで?
optimization - SICPが変化をもたらす
そう; 私は SICP を使って作業しようとしている愛好家です (無料です! )。最初の章には、アメリカの硬貨で両替する方法を数えるための手順の例があります。(change-maker 100) => 292. 次のように実装されています。
ともかく; これはツリー再帰手順であり、作成者は同じ問題 (つまり、固定スペース) を解決するための反復手順を見つけることを「課題として残します」。私はこれを理解したり、イライラした後に答えを見つけたりすることができませんでした。それは私の側の脳のおならなのか、それとも作者が私をからかっているのか疑問に思っています.
scheme - SICP 演習 1.16、私のバグはどこですか。
私は楽しみのためにこの本を読み始めたところです。宿題だったらよかったのですが、MIT に通う余裕はありませんでしたし、とにかく私より賢い人はたくさんいます。:p
fast-exp は b^n を見つけることになっています。つまり、4^2 = 16、3^3 = 27 です。
lisp - SICP 1.31: 円周率の近似
私は自分で SICP に取り組んでいるので、これについて尋ねるインストラクターがいません。このコードは pi を概算することになっていますが、代わりに常にゼロを返します。
このコードで参照されている mod と製品の手順は次のとおりです。これらは問題ではないようですが、念のため含めておきます。
全体が次の式の実装です。
円周率/4 = (2 * 4 * 4 * 6 ...) / (3 * 3 * 5 * 5 ...)
私の間違いは明らかにかなりばかげたものですが、私はSchemeに慣れていないので見つけられません。文体のヒントがあれば、それも本当にありがたいです。ありがとう!
scheme - SICPを学ぶためのMIT SchemeとDrSchemeの長所と短所
SICPを実行しようとするコンテキストで、MIT スキームを使用することと DrScheme を使用することの長所と短所は何ですか?
scheme - if と cond の違いは?
私は今 sicp を学んでおり、次のコードを書いた ex2.23 を実行しています:
ただし、実行時にエラーが発生します:プロシージャ アプリケーション: 予期されるプロシージャ、指定: #; 引数は: ()
理由はわかっていると思います: for-each 関数を再帰的に呼び出します。
しかし、コードを変更した場合:
それはうまくいきます。わからない、なぜ?condでは、for-each と呼ばれるたびに値を返す必要はありませんか?
DrScheme を使用し、言語SICPを選択
私は英語のネイティブ スピーカーではないので、明確に説明されていない sth があれば教えてください