web-dev-qa-db-ja.com

MIT-Schemeには、SICPに理想的な機能がありますか?

私はもう一度SICPを通過しようと考えていましたが、今回はSICPが何を達成することを意図しているかをよりよく理解しており、大学での最初の試みよりも古くて賢いです。 MITスキームはonlyスキームであり、使用を検討する必要があります。また、他のスキームにはSICPを困難にする機能が不足していると古い手から言われました「SICP-in-X」がすべて第3章で終わるのには理由があります。他の言語では第4章の内容をサポートできません。」

第4章の内容を尋ねたところ、「最初の3つの章を理解する必要があります」と答えました。これは非常に禅であると私は認めますが、役に立ちません。

古いlispsにあると私が考えることができる唯一のことは、動的スコープとfexprsですが、それらは問題ではないようです。 MIT SchemeがSICPを「理想的な」ものにするために備えている機能は何ですか?(もちろん、それが本の対象言語であること以外)

5
Elf Sternberg

私はこれらの人々を信じているかどうかはわかりません。私はSICPを経験しましたが、あなたが遭遇する最大のブロッカーはcall-with-current-continuationcall/cc)が実装されています。

MITスキームは公式に承認されていますが、MITスキームにはいくつかの欠点があります。

  1. 古い
  2. 私の知る限り維持されていません
  3. かなり平凡な環境/ repl
  4. それほど大きなエラーではない

一方、初心者にとっては、Niceと見なされる可能性のある拡張機能が比較的少ない「純粋なスキーム」です。

ラケットはかなりのうねりを提供しますIDEそしてニールヴァンダイクは、SICPに正確に合わせたスキームを実装するニース パッケージ を作成しました。

それは全体としてよりモダンで快適な環境です。もし私のようにSICPの後にいくつかのSchemeを書くことに決めたら、Racket en-properはSchemeっぽい言語で書くのにぴったりです。

9
Daniel Gratzer