Article View: fj.lang.lisp
Article #312Scheme Book (Was: Re: Lisp Book)
From: 中村 弘輝 (Hiroaki NAKAMURA)
Date: Thu, 16 May 1996 00:00
Date: Thu, 16 May 1996 00:00
125 lines
6351 bytes
6351 bytes
中村 弘輝@”またSchemeの本を買いましたがまだあまり消化できていま
せん”です。
Shigenobu Kimura wrote:
>
> 「Scheme 手習い.」(マグロウヒル) (原題 Little lisper)
>
> という本がまさしく,
>
> S> その方曰く『段階的に理解できるように、問題集がついているもの
> S> などが良い。』だそうです。
>
> な本です. (というより問題だらけ?)
> しかし, 現在は残念ながら入手は難しいようです.
洋書なら"The Little Schemer"というのが出ています(下記参照)。
> また, 本当は Lisp で何をやりたいかによって
> 読むべき本が変わってくると思います.
そうですね。私の場合は、単に趣味でSchemeを勉強しているだけですし。
SchemeではC/C++などとはかなり違った考え方を教えられるので、非常に
勉強になります。
> また, 以前このニュースグループで話題になったねたを再投稿します.
> ========== 読み物 =============[snip]
> SICP
> Structure and Interpretation of Computer Programs
> Harold Abelson and Gerald Jay Sussuman with Julie Sussman
> MIT-press
> 「プログラムの構造を実行」
> 元吉文男訳 マグロウヒル
> Schemer の Bible といっていい本。和訳はマグロウヒルが
> 倒産してしまったため現在は入手不可能だそうです。
これ、昔原書と訳本を図書館で借りて読もうとしたのですが、私には難しすぎ&
硬すぎであっさりくじけました(^^ゞ。
[snip]
> "Scheme and the Art of Programming"
> George Springer & Daniel P. Friedman, MIT Press, ISBN 0-262-19288-8
>
> Schemeによるプログラミングを1から勉強したい人向けの本で、非常
> にわかりやすく書かれています。サンプルコードはR4RS準拠になって
> いて、少なくともGNUのscmという処理系では問題なく実行できました。
> 中村 弘輝 JF7H-NKMR@asahi-net.or.jp
この本は大学生のころ図書館から何回も借りて読んだものです。趣味で読んだ
とはいえ、思えば私は抽象データ型なんかもこの本で知りましたし、他にもい
ろいろ勉強になったなあ。この本も買っておこうかな :-)。
> "Essentials of Programming Languages",
> Friedman, D.P., Wand M., and Haynes C.T., [1992],
> Cambridge MA: MIT Press, and New York: McGraw-Hill.
>
> Schemeの説明というよりは題名どおりプログラミング言語のしくみを
> Schemeを使って解説している本です。インタプリタ、パーサ等の動作
> 原理をSchemeで記述しながら説明していくという構成になっています。
> 中村 弘輝 JF7H-NKMR@asahi-net.or.jp
こっちは、スキャナとパーサを理解したくて買ったのですが、今はほとんど積ん
読状態となってます。いつかは…
> ===========================================
で、私が買ったという本の説明です。
"The Little Schemer"
Daniel P. Friedman and Matthias Felleisen, MIT Press, ISBN 0-262-56099-2
"Little lisper"を完全にScheme対応にした本です。プログラミングの経験
が全くない人へのScheme入門書で、全編が問答形式になっています。まえが
きには、再帰的に考えることを身につけさせるのが目標だとあります。
#私には最後の2章はかなり難しくて、applicative-order Y combinatorのところで
#止まってます。
ところで、この本*だけ*でプログラミング初心者がSchemeを分かるようになるかは私にはちょっと疑問です。というのはこの本では定義が示さないまま、話が進んでいくのです。「読者へのガイドライン」の項には、じっくり読んで自分で定義を
考えることでより理解が深まり記憶にも残るとか書いてあります。でも、どうしても理解不能なときは、別の本なり先生なりが必要だと思います。
"The Seasoned Schemer"
Daniel P. Friedman and Matthias Felleisen, MIT Press, ISBN 0-262-56100-X
"The Little Schemer"の続編で、章番号も続きになっていますし、問答形式
なのも同じです。まえがきには、"nature of computation"(コンピュータの
処理の本質とでも訳すのでしょうか?)について考えることを身につけさせるの
が目標だとあります。
#私はこっちはまだ読んでいません。読もうとしたのですが、先に
#"The Little Schemer"を読む必要があることがわかったのでした。
===========================================
Schemeは文法が非常にシンプルなのが、とても好きなところです。言語仕様
(R4RS)も50ページほどなんですよね。Common Lispの膨大さとは対極をなし
ていますよね。
#Adaとかのほうが言語仕様は大きかったりします?>詳しい方々
言語仕様はコンパクトでも表現力はすばらしくて、Schemeで表現できる概念
の広さには感心させられます。
上記の"Essentials of Programming Languages"の章見出しを並べてみると、
1. Tools for Symbolic Programming
2. Induction, Recursion, and Scope
3. Syntactic Abstraction and Data Abstraction
4. Reduction Rules and Imperative Programming
5. Interpreters
6. Parameter Passing
7. Object-Oriented Languages
8. Continuation-Passing Style
9. Continuation-Passing Interpreters
10. Imperative Form and Stack Architecture
11. Scanners and Parsers
12. Compiler Derivation
こんなにいろいろな概念やスタイルを表せるなんて、ほんとSchemeは奥が
非常に深いですね。
それに表現も本質をすっきりと見せられるのが、また魅力的です。コード
にノイズがないと言うか、コードがアルゴリズムをそのまま表していると
いう感じです。
#Guileが大ヒットしてSchemeがもっとメジャーになるといいな。
--
中村 弘輝 )Hiroaki Nakamura( hnakamur@da2.so-net.or.jp
(JF7H-NKMR@asahi-net.or.jpから引っ越しました)
Technical Details
Message-ID:
<319A1BE3.50EC@da2.so-net.or.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<SHINTARO.96May14153824@bosszar.aa.cs.keio.ac.jp> <SKIMU.96May14193752@tsukuyomi.phys.s.u-tokyo.ac.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 1421c0,5054df623f450f30 X-Google-Attributes: gid1421c0,public From: "中村 弘輝 (Hiroaki NAKAMURA)" <hnakamur@da2.so-net.or.jp> Subject: Scheme Book (Was: Re: Lisp Book) Date: 1996/05/16 Message-ID: <319A1BE3.50EC@da2.so-net.or.jp> X-Deja-AN: 156798387 references: <SHINTARO.96May14153824@bosszar.aa.cs.keio.ac.jp> <SKIMU.96May14193752@tsukuyomi.phys.s.u-tokyo.ac.jp> content-type: text/plain; charset=iso-2022-jp organization: a personal member of So-net mime-version: 1.0 newsgroups: fj.lang.lisp x-mailer: Mozilla 2.01Ib7 [ja] (Win95; I)