やっぱ最初のころは Ruby のブロック引数が全く理解できんかった。yield をよぶとどこに飛ぶか、とか結構悩むと思うんだ。
each の「使い方」を先に覚えて、実行してみてやっとブロック引数の概念が理解できた。んで、「じゃあ自分で書くときはどうするんだ」とかでリファレンスを読むと yield とか書いてあって、でもそれ以上はリファレンス読んでもよく分からなかったから、てきとーにサンプル作ってみてやっと理解した。
それまで書いていたのが PHP とかいう謎言語だったので、Ruby が余計に神がかってみえた。Perl は読めなかったし、Python は知らなかったし。今は Perl とか Python を勉強しようと思っても、必要性が見当たらなくて書けない。所詮「勉強」にすぎなくなるから、やる気があんまり起こらない。しかし Perl はホントに、本当に読めない。map { hoge } hage {} @foobar
みたいなのをよく見るけど、どういう仕組みで評価されてるのかよくわからない。
まぁ、とりあえず、自分は実装を触りながらじゃないとぜんぜん理解できない。頭が悪い上に「自分の今考えてること」に対してかなり不安を覚えるので、すぐにコンピュータで実行させて、考えていることがあっているのか間違っているのかを確定させたい。
あんまり頭の中で構造を考えないで、とにかく動かしてみる。一行書いて、p
書いて、実行して、ってのを繰り返す。しかもこれ、未だにこういう感じなのだ。数行書くごとに実行する。とにかく p
を書きまくる。んで、暇なときにリファレンスを眺めて、「こういうことができるのか」ってまた書いて実行してみたりする。
だから、何か作ろうとしていないと、そもそもプログラムを書かないからなかなか理解できるようにならない。Perl も書いてみたらわかるかもしれないけど、Perl を使って書きたいものがない。気がつくと面倒くさくて Ruby を使ってる。だめじゃん。