Lisp, Prolog 他言語 |
作成日:1999-12-07 最終更新日: |
Lisp, Prolog 他コンピュータ言語についての本の紹介です。
実はまだ理解するところまで読んでいない。 最初のあたりを読んで思ったことは,楽な言語があるんだ、ということだった。 解説する言語はMirandaをもとにしている。 この本が出た頃は,そう簡単に言語処理系が手に入らなかったし, たとえ入ったとしてもなかなか実用上動かしにくかったろうな。
今は、Haskell で勉強できる。いい時代になったもんだ (2008-04-20)。
実は買った本ではない。図書館で借りた本だ。 難しい。 一つ注釈。本文の左側または右側にダガー(†)がある行は、 後注に参考文献または説明があることを表している。 (2007-06-09)
これも図書館で借りた本だ。 難しいけれど読みごたえがある。 何度も読めば、Haskell の魅力がわかってくる。 たとえば、自然数 n の階乗 fac n が fac n = product [1..n] で済むということがわかっただけで、痛快である。
また、これは Haskell に限らないのだが、 foldl の使い方には感心した。そして、 Ruby の inject メソッドのとの類似性を認識した。
この本は導入部で ある関数の実装方法をまずいろいろな方法で提示している。 その後、個別の話題、たとえば型、リスト、モナドなどの個別の話題を説明している。 このような流れは私の好みである。
ただ、Haskell について全く知らず、Lisp もまったく知らない初心者が、 この本についていくのは苦しい。 青木峰郎氏の「ふつうの Haskell プログラミング」 から入っていくのがいいと思う。
そして、おじさんとなった私から見ると、 文体が少し舌足らずなのが気にかかる。 p.80「さくっと」p.81 「ほっとくと」など。
いくつか注釈。
P.47、<配列について。(中略)本書では取り扱わないことにします。> とあるが、実際には p.180 以降で取り扱っている。
p.101、<constructor は(中略) ここでは『関数プログラミング』の訳語に従って 「構成子」としました。>とある。この『関数プログラミング』は、 Bird と Wadler の本を意味している。
p.203、ハッカーとなるために学ぶべきプログラミング言語の5つのうち、 著者はこう記している。< Lisp の代わりに Haskell を学ぶ方が良いのではないか考えている。 > また、小飼弾氏は、Haskell は認めながら、Lisp は残すべきとしている。 私も、何らかの形で、 Haskell はハッカーが学ぶべき言語として選ばれるべきだと思う。 私が思うに、 Haskell は、プログラミング言語世界の、共産党のような言語だ。 理想を追及する余り、一般に用いられ、普及することは今後ないだろう。 しかし、その理想を追及する姿勢は、他の言語に影響を与えるのだ、と。 (2008-04-25)
これも図書館で借りてきた。 著者は内容を選んだという感じがあり、 関数型言語の基礎からゆっくり進んでいる。 並列プログラミングは最後に入口程度の紹介なので、 Erlang 固有の魅力を知りたい人には物足りないだろう。
並列計算には憧れがあり、 私もマルチスレッドに挑んでは挫折しているので、 この本を手がかりに、今度こそ並列処理を理解したいいと思っている。 (2008-04-25)
数学者が Prolog と出会った時の驚きと喜びを感じることができる。 レーザプリンタで出した原稿をそのまま版下としたところにも、その感情がわかる。 私は後述の S-Prolog を使って少しずつ検証したのだけれど、 あるところまでいったら検証がうまくいかなくなって挫折した。 久しぶりにいじってみようかと思ったのだが、 今はどんな処理系があるのかわからない。
後記:今は GNU Prolog と SWI-Prolog を使ってみて、 SWI-Prolog のほうが良さそうなので、こちらでこの本の検証をしている (2008-04-08)。 Prolog を参照してください。
まりんきょ学問所 > コンピュータの部屋 > コンピュータの本 > Lisp, Prolog