[ruby] クロージャ
最近は週に2回、取引先に常駐しているので電車で通勤というものを経験している。通学通勤は近いところばかりで、少し遠くても自転車の経験しかないため、ほぼ初めてに近いw*1
そんな通勤時間に何をしているかというとプログラミング言語 ruby を読み進めたりしてる。そして帰宅してから、読んだところのコードを実行してみたり。
lambda で n 閉じこめ
def increment(n) lambda { n += 1 } end hoge = increment(3) hoge.call #=> 4 hoge.call #=> 5 hoge.call #=> 6
Proc で n 閉じこめ
def increment2(n) Proc.new { n += 1 } end fuga = increment2(3) fuga.call #=> 4 fuga.call #=> 5 fuga.call #=> 6
n 共有したクロージャ
def increment_and_reset(n) m = n incr = lambda { n += 1 } reset = lambda { n = m } [incr, reset] end incr, reset = increment_and_reset(5) incr.call #=> 6 incr.call #=> 7 reset.call #=> 5 incr.call #=> 6 incr.call #=> 7 reset.call #=> 5
クロージャは perl でもかなりあとになって理解したせいか、クロージャがわかるとその言語をつかんだ気になってくる。
まぁ、lambda と Proc の違いが曖昧なんだけども。
*1:初めて入った会社も電車通勤だったけど、まぁ、時間が定まってなかったので。
Fiber でフィボナッチ数列
これはプログラミング言語 ruby のまる移し
Fiber つかってフィボナッチ数列を返すのにクラス作って Fiber であることを隠蔽したパタン。
class FibonacciGenerator def initialize @x, @y = 0, 1 @fiber = Fiber.new do loop do @x, @y = @y, @x+@y Fiber.yield @x end end end def next @fiber.resume end def rewind @x, @y = 0, 1 end end g = FibonacciGenerator.new 10.times { print g.next, " " } # 1 1 2 3 5 8 13 21 34 55 g.rewind; puts 10.times { print g.next, " " } # 1 1 2 3 5 8 13 21 34 55 puts
この例で Fiber はなんとなくわかった感じだけど、イマイチ使いどころが思いつかない。
たこ焼き食べたり芝居観たりした
先週末土曜日は、しんみりとたこ焼きを食べる会に行ってきた。子供の成長の早さに驚く。そして泣かれるw
id:tomyhero がフレームワーク作ってる横で、angelos のコードを思い出すべく HTTP::Engine と Middleware をさわったりしてた。なんかうどんのコードが参考になりました。
日曜日は夕方に聖蹟桜ヶ丘のヴィータホールに不等辺さんかく劇団の「トワの宇宙」を観に行った。
前もって空さんから SF だと聞いていたのだけど、話が壮大でウケタw
役者が22人と大人数だったためか、脚本が膨らんだから役者を集めたのかはわからんけど、多摩地区の劇団オールスター的な感じだった。*1
しかもその22人全員にそれなりのスポットをあてた脚本になってて、さらに伏線的なキーワード鏤められてて、「これ最後まとまるのかw」的なハラハラが多少ありつつもすべての風呂敷が畳まれての大団円だった。
場転時の映像とかは冗長でちょっと全体のテンポを悪くしてた気がします。あそこまでやっても、お客さんには説明でしかないというか。
あー、伏線的なキーワードと言えば、パスワードがギターのコード進行ってのは思いつかなかったです。実際に使ってる人は居そうだなぁ。そして、あれだけ発達した未来でもパスワードなのかとか思ってしまったりして。
あと、芝居が終わったあとでパンフレットが配られてたんだけど、そこに今回の話の年表とか載ってて、脚本書いた人の本気度が伝わってきましたw
不等辺さんかく劇団みたのは多分、背中のイジン以来だった気がする。
カメラもってたんだけど撮るの忘れたので文章だけでー。
*1:パンフ見る限りだと脚本ドリブンですね
はてなTシャツ2009欲しい!
アイコンの白が欲しいです! サイズは M がいいです!
喫茶店とかファミレスとかで
PC カタカタやってる人は、トイレ行くときどうしてるんだろ。 自分は macbook 持ってトイレ行きました。
財布や携帯はズボンのポッケに入れてるからなぁ。
そんな感じで久々にパフェ食べた。週末の夜はジョナサンに居る気がするw
元気があれば何でもできる!
元気がないとなんにもできない!うんこー!
ちょっと油断すると日記も日が空いてしまうな……。
マンガ少年別冊版の火の鳥が復刻してる?
なんか本屋で見つけた。表紙とか本のサイズはそのままだった。
- 作者: 手塚治虫
- 出版社/メーカー: 朝日新聞出版
- 発売日: 2009/05/20
- メディア: コミック
- クリック: 22回
- この商品を含むブログ (20件) を見る
5巻までしか持って無くて小学生の頃から5巻までを読み返してるんだよなぁ。
6巻以降が出たら買おう。