lispとrubyとpythonと(感想)
三つ触ってみて思ったこと。
python
タイプ量が少ないような気がした。
オフサイドルールが結構いい。ブレース打ったり括弧打ったりする手間が丸ごとなくなるって思ったより快適だった。
lisp書いたあとにpythonを書くと「なんだかサクサクすすむな」という気分になる。
printが文なのは微妙。
lambdaに式しか書けないのも微妙。まぁ、関数定義しなさい、ってことなのかなぁ。
イテレータ、ジェネレータはまだ使いどころがピンとこない。
要修行。
ここに遅延リストの構築の記事がある。
http://builder.japan.zdnet.com/news/story/0,3800079086,20365025-2,00.htm
common lisp
やっぱfuncallはめんどい。
funcall書くのが面倒くさいから関数を返す関数を作る気になれない。
なので、マクロをガリガリ書いて関数を生成してしまう。
というのがcommonlisperなのかもしれない。
lispは簡単なことをやるのが面倒くさい。
文字列連結くらい + でやらしてよ。
seriesをちゃんと覚えたい。便利かもしれない。
pythonのジェネレータと一緒に覚えよかな。
ruby
@だとローカル変数とかキモい。と昔は思っていたけど、今になると気にならない。
なーんかCを感じさせる。どことなく。そこがまた人気なのかもしれない。
括弧が省略できたり、returnがいらなかったり、細かいところが気持ちいい。
あと、ifとか、unlessとか後ろに書くのも気持ちいい。
ただ、やっぱendは好きになれない。(大きな問題ではないけどさ)
procでcallと書かなきゃいけないのがイマイチ。
commonlispと一緒。
普通の関数と区別せずに呼び出したい。いちいち、funcallするんだっけ?とかcallするんだっけ?と考えたくない。
schemeとか、python(たしかjavascriptも)みたいにみたいに普通に呼び出したい。
ブロックを引数にとるメソッドは便利かもしれないし、構文っぽく見えるのもいいのかもしれない。
が、lispのマクロを見た後だと物足りない気がしなくもない。