web-dev-qa-db-ja.com

SICPで作業するのに最適なScheme実装は何ですか?

私は PLTスキーム を使用していますが、いくつかの問題があります。誰かがSICPを介して作業するためのより良い実装を知っていますか?

63
Joel McCracken

MIT Scheme を使用します。

SICPの作成者が推奨し、MIT for6.001:Computer Programs of Interpretation of Computer Programsで使用されます。コース。

56
keparo

Racket (以前のPLTスキーム)を使用します。

DrRacket IDEは、SICPを含むすべてのスキームの優れた出発点です。

ドキュメントでキーワードを検索するには、キーワードの上にカーソルを置き、 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 をダウンロードしてください。

79
soegaard

MIT/GNUスキーム 、SICP互換性をロードすることを確認してください パッケージ (はい、SICP演習の動作を保証するための特定のライブラリを提供します)。

11
Louis Gerbarg

私は今週SICPを始めたばかりです。

現在、MITスキームはUbuntu Linux(9.04 "jaunty")で壊れています。将来的には機能する可能性があります。

DrSchemeは機能しており、正常に機能しています。上記のsoegardのパッケージ、またはsoegardのパッケージに基づいており、 http://www.neilvandyke.org/sicp-plt/ から入手できるNeil Van Dykeのパッケージを使用できます。このパッケージのいいところは、インストール時に、Language | Choose Language ....メニュー項目を使用してSICPを選択できることです。

6
gdimike

これはmacOSで実行するのが驚くほど面倒でした。あなたがHomebrewを持っていると仮定すると、これは今日現在どのように機能するかです。 (たまにbrew updateを実行したいかもしれません)。

brew cask install racket
raco setup  # might be optional
raco pkg install sicp

これで(require sicp)または単に実行できます

racket -l sicp --repl

schemeと省略した方がいいかもしれません。バッシュでは

alias scheme='racket -l sicp --repl'

~/.bashrcに追加できます

4
Frederick Squid

PLTスキーム はかなりうまく機能します。または、ケパロが示唆するように MITスキーム も機能します。それに関してどのような問題がありますか?

1
Matt Curtis

CHICKENスキーム には sicpライブラリ があり、SICPをサポートしています。 chicken-install sicpを実行し、ソースコードの先頭に(use sicp)と書き込むことでインストールできます。

1
htanata

Chez Scheme を使用してSICPで作業しています。これはSchemeのかなり古い方言なので、おそらくSICPが書かれたものからそれほど遠くないでしょう。

Chez Schemeプロジェクトページは、UnixのようなプラットフォームでビルドできるWindowsバイナリとソースにリンクしていることに注意してください。しかし、Macを使用している場合は、おそらく

brew chezscheme
man chez

あなたが homebrew を持っていると仮定すると、本当にそうするべきです。

MIT Scheme?でないのはなぜですか?インタラクティブなフロントエンドはEMACS規則を使用するエディターであるEdwinであるためです(現在、これは実際にはEMACSモードであり、Schemeでの実装に使用されていました)。基本的なEMACSを知ることですが、私のスキルが廃用から萎縮しました。このことは、このエディターを再学習することは、問題を起こすだけの価値がないことを示しています。

なぜDrRacketではないのですか? @ frederick-squidのbrewの指示を見ていたら、試してみたかもしれません。代わりに、schemeとsicpの公式の指示に従いましたが、これらは非常に古くなっています。次に、IDEをスキームモードにしました。これは直感的に見えるようですが、そうではありません。

あまりにも多くのトラブル。そして、私が派手な言語設計IDE、特に、Schemeの不十分なサポートが元の質問を引き起こしたIDEに入りたいとは思いません。

0