lispの定石
例えば、list の 0番目に名前、1番目に 住所が入っているときに
c++では(自分的に) ↓こう書くけど
const std::string name(list[0]); const std::string address(list[1]); std::cout << name << address << std::endl;
lispでは
(let ((name (car list)) (address (second list))) (print (format "%s%s" name address)))
が自然なのか
(print (format "%s%s" (car list) (second list)))
が自然なのか分からない。
なんとなく、下の方がlispっぽい様な気がするけど、下のコードだと、list[0] って何よ。list[1]って何よって感じがする。
今読んでる 「on lisp」を読み終えた頃には分かるようになるかな。。
lispがスゲーと思うところは、最初に記述してあるメソッドをみると、そのメソッドが何をしたいのかが分かるところ(英語的)。
それと、fluent interface じゃないけど、左から右に流れる流暢な書き方ができるところ。
辛いところは、c++で云うところのstlのアルゴリズムがない(存在を知らないだけかも)ところ。
あ、明日誕生日だ