問題タブ [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 投票する
3 に答える
1926 参照

lisp - SICP パターン マッチング ルール ベースの置換コードの実行

このレッスンのコードをオンラインで見つけました (http://groups.csail.mit.edu/mac/ftpdir/6.001-fall91/ps4/matcher-from-lecture.scm)。それをデバッグしようとしています。このコードは、Sussman が書いたものとかなり似ています。

DrRacket で R5RS を使用して実行していますが、最初に遭遇した問題はそのアトムでしたか? 未定義の識別子でした。そのため、次を追加できることがわかりました。

次に、この獣を実際に実行する方法を理解しようとしたので、ビデオをもう一度見て、彼が次のように使用しているのを見ました。

Sussman が述べたように、(+ 1 0) に戻る必要があります。代わりに、R5RS を使用すると、次の行で拡張辞書プロシージャが壊れているようです。

返される特定のエラーは次のとおりです。 mcdr: 可変ペア型の引数が必要です。与えられた #f

neil/sicp を使用する場合、次の行で評価手順を中断しています。

返される特定のエラーは次のとおりです: モジュール内のバインドされていない識別子: ユーザー初期環境

以上のことを踏まえて、私は何らかの助け、または正しい方向への良いナッジをいただければ幸いです。ありがとう!

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

shell - すぐに失敗するテストのように SICP スキーム ファイルを実行する

数年間のプログラミングの後、ついにSICPを攻撃する時が来たようです。ただし、Emacs ですべてを編集して実行するのではなく、別のエディターと単純なメイクファイルを使用してすべての演習を実行したいと思います。何かが「失敗」するまでファイルを実行するなどの基本的なことへの参照が見つからなかったため、これは完全に正則ではないようです。では、Scheme をシェル上で実行してファイルをロードし、各式を順番に評価#fし、終了コードがゼロに評価されるステートメントに遭遇するとすぐにゼロ以外の終了コードで終了するようにするにはどうすればよいでしょうか。ファイル全体が正常に評価されましたか? これまでの解決策に最も近いもの:

編集: つまり、ch1.s​​cm の式のいずれかが評価された場合、ch1.s​​cm の読み込み中に評価を停止する方法はあり#fますか?

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

scheme - SICP演習1.2

SICPの演習1.2で苦労しています。

以下を接頭辞形式に翻訳します。

これが私が持っているものです、そして私はそれがうまくいかない理由を理解することができません。私は何が欠けていますか?

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

c# - SICP を開始する C# 開発者 - 推奨される開発環境は?

やっとSICPを読み始めました。

私はGNU/MIT スキームをダウンロードしました。Edwin エディターで作業する必要があるようです。これは、慣れれば素晴らしいと思いますが、Scheme を学びながら新しいエディターを習得する必要はありません。

Visual Studio プラグインかそれに類するものがあることを期待していました。

notepad ++を使用して、コマンドラインを使用してコンパイルするだけで、実際に満足できます。

誰か提案がありますか?

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

scheme - SICPはまだ推奨されていますか?

私はPythonの経験があり、新しい言語を要求し、学んだことを実装するのに苦労していると言いました。彼らは私がSICPを学ぶことを提案しました。それは素晴らしい言語を使用し、素晴らしいプログラミングの基礎を教えていると言っています。

しかし、私はそれが1984年に公開されたことに気づきました。皆さんはそれをお勧めしますか、それとも私は荒らされましたか?:p

ありがとう。

0 投票する
7 に答える
2466 参照

javascript - SICPを勉強するためのスキームインタプリタを実装したい

Structure and Interpretation of Computer Programsという本を読んでいて、スキーム インタープリターを徐々にコーディングしたいと思っています。

最も読みやすい(そして短い)スキームの実装を知っていますか?C で JavaScript を作成します。

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

scheme - SICPビデオ講義2

この例に問題があります

-1+と1+の問題は何ですか、評価するとこの結果が得られます

  • DrScheme:-1+:この関数は定義されていません
  • ラケット:未定義の識別子への参照:-1+

しかし、私は代わりにこれを書き、それは機能します

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

macros - ラムダ形式を返すMITSchemeマクロをどのように記述しますか?

MITスキームでこの些細な(Common Lispの)マクロに相当するものを作成しようとすると困惑します:

これは、2回目のSICP講義で構築された関数に基づく数値方程式ソルバーである、単純な個人プロジェクト用です。このマクロが「安全」または「衛生的」でないことや、expが'x以外の記号を参照している場合に変数をキャプチャすることは気にしません。書けるようになりたい

ここで、solvは次のとおりです。

入力する代わりに

しかし、MITスキームの構文規則を使用してこれを行う方法を理解することはできません。

私はこれを試しましたが、機能しません:

私はおそらく言及する価値のない他のことを試みましevalたが、役に立たなかったのです。

また、Schemeのマクロシステムに関する優れたチュートリアル(参照ではない)への参照は、小さな簡単な例から始まり、十分な解説付きで構築され、特にバッククォート-コンマスタイルのLISPマクロ(私にとっては非常に直感的です)をに変換する方法を示していますスキームの構文マクロシステムは素晴らしいでしょう。

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

clojure - SICP sqrt NullPointerException

Clojure で最初の SICP コードを実装しているときに、予期しない NullPointerException が発生しました。特に、セクション 1.1.7 の反復平方根手順を実装したいと考えています。

コードは次のとおりです。

これは、十分に小さい値に対してはうまく機能します(sqrt 16)NullPointerException clojure.lang.Numbers.lt (Numbers.java:3693)おおよそ より大きい入力に対してエラーが発生します(square 2718)

何か案は?

トレースバック全体で更新します (以前のものは、repl で取得したすべてです):

スレッド「メイン」での例外 java.lang.NullPointerException at clojure.lang.Numbers.lt(Numbers.java:3693) at sicp_in_clojure.chapter_one$sqrt$good_enough_QMARK___14.invoke(chapter_one.clj:40) at sicp_in_clojure.chapter_one$sqrt. sicp_in_clojure.chapter_one$sqrt.invoke(chapter_one.clj:37) で sicp_in_clojure.chapter_one$eval19.invoke(chapter_one.clj:48) で (chapter_one.clj:48) を呼び出します。 :6465) clojure.lang.Compiler.load(Compiler.java:6902) で clojure.lang.Compiler.loadFile(Compiler.java:6863) で clojure.main$load_script.invoke(main.clj:282) で clojure .main$script_opt.invoke(main.clj:342) で clojure.main$main.doInvoke(main.clj:426) で clojure.lang.RestFn.invoke(RestFn.java:408) で clojure.lang.Var. clojure.lang.AFnでinvoke(Var.java:401)。applyToHelper(AFn.java:161) at clojure.lang.Var.applyTo(Var.java:518) at clojure.main.main(main.java:37)

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

emacs - 情報バッファーからスキーム インタープリターにコードを送信する

Emacs で SICP を勉強したいです。MIT スキーム、Emacs 24 をインストールし、sicp 情報をダウンロードしました (このガイドhttp://www.pchristensen.com/blog/articles/setting-up-and-using-emacs-infomode/を使用)。これで、専用バッファー (Mx run-scheme) でスキーム インタープリターを実行できるようになりましたが、情報バッファー (Cx Ce)から定義式の 1 つを送信しようとすると、次のエラーが発生します。

Emacs が Lisp インタプリタでこのコードを実行しようとしているようです。この問題の回避策として、スキーム バッファ (*.scm ファイル) を開き、info からコードをコピーし、Cx Ce で実行します。しかし、情報バッファから直接実行したいです。どうすればこれをセットアップできますか?