SICPを介した作業に最適なSchemeの実装は何ですか?
質問
PLTスキームを使用していますが、いくつかの問題があります。 SICPで作業するためのより良い実装を知っている人はいますか?
解決
MITスキーム を使用します。
SICPの作成者が推奨し、MITで 6.001:コンピュータプログラムの構造と解釈コースで使用されています。
他のヒント
ラケット(以前のPLTスキーム)を使用します。
DrRacket IDEは、SICPを含むSchemeのすべての優れた出発点です。
ドキュメントでキーワードを検索するには、キーワードにカーソルを合わせて F1 を押します。 DrRacketでは、REPL(read-eval-print-loop)で画像を直接見ることができます。
DrRacketのSICPサポート、Neil van Dyke
更新:新しいSICPパッケージは http://pkgs.racket-lang.orgにあります/#[sicp]
パッケージマネージャー(DrRacket内)でダウンロードするか、 raco
を使用します。
マニュアル
Update2:また、SICPピクチャ言語の新しい実装を試したい場合は、 sicp-pict2.rkt 。
MIT / GNUスキーム、必ずSICP互換性をロードしてくださいパッケージ(はい、SICP演習の動作を保証するための特定のライブラリを提供します。)
今週、SICPを始めました。
現在、MIT SchemeはUbuntu Linux(9.04" jaunty")で壊れています。将来的に機能する可能性があります。
DrSchemeは正常に動作しています。上記のsoegardのパッケージまたはNeil Van Dykeのパッケージを使用できます。これはsoegardのパッケージに基づいており、 httpから入手できます。 ://www.neilvandyke.org/sicp-plt/ 。このパッケージの良いところは、インストールしたときに、Language | Choose Language ....メニュー項目を使用してSICPを選択できることです。
これは、macOSで行うのは驚くほど面倒でした。 Homebrewを持っていると仮定した場合の、今日の動作を以下に示します。 (時々 brew update
を実行したい場合があります)。
brew cask install racket
raco setup # might be optional
raco pkg install sicp
今、(sicpが必要)
または単に実行できます
racket -l sicp --repl
scheme
に短縮したい場合があります。 bashになります
alias scheme='racket -l sicp --repl'
〜/ .bashrc
PLTスキームは非常にうまく機能しますが、 Keparoが提案したMITスキーム。どんな問題がありますか?
チキンスキームには、 SICPのサポートを提供するsicpライブラリ。これをインストールするには、 chicken-install sicp
を実行し、ソースコードの先頭に(use sicp)
を記述します。
現在、 Chezスキームを使用して、SICPを使用しています。これはSchemeのかなり古い方言なので、おそらくSICPが書かれたものからそれほど遠くないでしょう。
Chez Schemeプロジェクトページは、UnixのようなプラットフォームでビルドできるWindowsバイナリとソースをリンクしていることに注意してください。ただし、Macを使用している場合は、おそらくしたいことでしょう。
brew chezscheme
man chez
homebrew を持っていると仮定します。これは本当に必要です。
なぜMITスキームではないのですか?インタラクティブフロントエンドはEMACS規則を使用するエディターであるEdwinであるためです。 (現在、これは実際のEMACSモードであり、Schemeで実装されていました。)私は以前は基本的なEMACSを知っていましたが、私のスキルは使われなくなったため、このエディターを再学習するのは面倒なだけではないことがわかりました。
なぜDrRacketではないのですか? @ frederick-squidの醸造指示を見たことがあれば、試してみたかもしれません。代わりに、schemeとsicpの公式の指示に従うことを試みましたが、これらは非常に古くなっています。次に、IDEをスキームモードにしようとしました。これは直感的と思われますが、そうではありません。
トラブルが多すぎます。そして、私は派手な言語設計IDE、特にSchemeの貧弱なサポートが元の質問を引き起こしたIDEに入るべきかどうかはわかりません。