* [2022-09-16 金]
** 我が家のlisp本 :lisp:

基本技術に直結したネタしか書かないで
おこうと思ってた。

ただtwitterでland of lispを見掛けたので、
ちょっと書いてみようかと。

*** 蔵書一覧
 とりあえず、自分の手元にあるlisp本というものを
 上げてみよう。はっきり言ってちゃんとまとめて
 書いた事はないし、自分でもぐちゃぐちゃになってる気がする。
 そういう意味では自分自身の状況をきちんと把握する意味でもいいかと。

 1. ANSI Common Lisp
 2. programming gauche
 3. 計算機プログラムの構造と解釈 第二版(sicp)
 4. on lisp
 5. 実践common lisp(practical common lisp)
 6. 実用common lisp(paip)
 7. land of lisp
 8. 初めての人のためのLISP 増補版
 9. bit別冊COMMON LISP THE SECOND EDITION(cltl2)
 10. 素数夜曲 女王陛下のLISP
 11. let over lambda
 12. Common Lispオブジェクトシステム-CLOSとその周辺-
 13. はじめてのLisp関数型プログラミング
 14. 関数型プログラミング
 15. The Common Lisp Condition System
 16. Programming Algorithms in Lisp

 こんな感じか。

*** 読んだ本
 これだけ本を持ってるのに自分のスキルがまだ恥ずかしい限りだが、
 全部読んだ訳ではない。

 この中で読んだのは
 1,2,4,5,7,8,11,12,13

 その他は、読んでる途中か、難しくて積読になってるか、
 手元にあるけど、今は特に必要性を感じてないか
 ただ単にまだ読んでないか
 とりあえず、感想を言う程にはなってないし、
 読んだものも逆に全部理解出来たかというとそうでもないし、
 一部飛ばしたのもある。
 正直言うと実践common lispの24,25章だけまだきちんと読んでない笑
 ->後日読んだら結構最近自分が分かってなかった事とかいろいろ書いてあってよかった。

 で、別に蔵書自慢したいという訳ではなく、
 自分なりに読んできた中で、結局どの本を
 果たして薦めるだろうか?
 初学者の方にはこれだけ読むだけでも時間掛かるし。

 そういう意味でこれからlispをやろうという人に
 最短コースみたいなものを勧めるとしたら
 どういう選択を勧めるのか書いてみようと思う。

*** お薦め本
 本当悩むけど、自分が初学者にお薦めする本はこの2冊かな。
 1. land of lisp
 2. 実践common lisp

 実は自分自身がlispを使えるようになった感覚を
 得たのはANSI Common Lispだし、
 あれも結構教科書としてはかなりいい作りをしている。
 だからこれは3番目くらいに入れたい笑

 ただ、lispを書く時に結構何度も読み返して
 参考にしているのが、この2冊かな。
 手垢が一番付いた気がする。


 しかし、なんでこの2冊かと説明すると

 - 何か具体的に作ろうとする題材がはっきりしている。
 - land of lispに関してはソースコード1行毎に説明が入っててわかりやすい。
 - しかも単なる入門レベルではなく、きっちり幅広くカバーしてる。
 - 両者共にformatやloopの使い方が結構詳しく書いてある。

 lispの中でもformatとloopは異色過ぎて正直最初は心理的な壁が出来ると思う。
 lisperの中にもちらほら毛嫌いしているのが見られる。自分もそうだった。
 そういうものを乗り越えさせてくれるけど、逆に言うと、
 それを乗り越えるとformat,loop中毒みたいな感じにもなる笑
 そういう副作用はあるかもしれない。

 そうなってきた時にはANSI Common Lispかな。
 ただ、上二冊読めばもう教科書的なものは十分っていう気はする。
 Paul Graham氏の本はon lispもそうだけど結構そういう類はサラッとしてて
 よりlispっぽい話にフォーカスしている気がする。
 スタンダードテキストと書いてあるように本当に教科書っぽい作り。

 ただ小さな例はあっても具体的にこれを作るというものが少ないから、
 初心者には難しいかもしれない。

 英語でもそうだけど、単語や文法、例文をひたすら勉強してても
 つまんないんだよね。で、やる気がなくなる。
 覚えてもいざ外国人と向き合うと出てこない。使えない。

 そうじゃなくて、やっぱりいきなり外国行ってみるとか、
 いきなり外国人と話すとかの方が恥はかくんだけど身に付く。

 プログラミングも同じで、本をひたすら読んだりして、
 プログラミングの関数名とか覚えてもプログラムを書けるようには
 ならない。

 じゃ、どうしたらいいのかというと、
 プログラム書けなくてもいいから何か自分の
 作りたいプログラムを作る。
 これじゃないかなと思うんだよね。

 さっきの英語に置き換えると、
 英語話せなくてもいいから自分の何か話したい事を
 英語で話すって感じになるかな。

 そんな無茶なって思うかも知れないけど笑

 まぁ、そんな感じでたくさんの本を上げたけど、
 自分の求めるものに応じて本も変わってきたりするから、
 ほとんどの本はそういうのに合わせて
 読んでいったらいいと思う。全部読んでから
 始めるというのではあまりにも効率が悪いし。
 とりあえず、最初の教科書的なものとしては
 そんな感じか。

 って偉そうな事書いたけど、自分もまだまだ。
 素人に毛が生えたくらいのもんだよな。