2008-09-05 最近書き溜めてたエントリまとめうp
■ [ruby] _why先生のShoes本が通販できるらしい
NOBODY KNOWS SHOES (nks) といえば_why先生のRuby Shoes本なわけですが、
こいつがlulu.comで通販されているらしい。
これは買うしかないだろ!と思って注文しかけたんだが、送料含めたら3000円とかになって 我に返った。普通にPDFから印刷するか…。
廉価版もあるんだけど見開き綴じになってないっぽい。
■ [ruby] Proc#===を定義してFizzBuzzを綺麗に書く
class Proc def ===(*args) self.call(*args) end end def divide0?(n) proc{|x| x % n == 0 } end
のように定義しておくと、FizzBuzzが
1.upto(15) do |i| case i when divide0?(15) puts "FizzBuzz" when divide0?(3) puts "Fizz" when divide0?(5) puts "Buzz" else puts i end end
みたいに書ける。divide0?がProcオブジェクトを返して、case〜whenなのでProc#===が呼ばれて 、その返り値が真か偽かでマッチしたかが判定されると。なるほどなぁ。
一応、実行結果。
/Users/yhara/ % ruby ~/tmp/fb.rb 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz
■ [misc] ruby-talkの流量がruby-listより多いのは
そもそもMLに書くメールの概念が違うよなぁ。1行付け足しただけのメールとか普通にあるし。
ruby-talkの方がチャットに近い雰囲気であるといえる。
■ [haskell] AppleCatcherがHaskellに移植されそうです
AppleCatcherというのは僕が作ったこういう感じのゲームなのですが、
それがHaskellのYampaに移植されそうです。wktk。
YampaというのはHaskellでFunctional Reactive Programmingするためのライブラリで、 内部実装にArrowが使われてるとかなんとか。
Yampa自体はデータの流れを制御するだけなので特定のViewには結びついてないようで、 ViewとしてはSDLが使われてます。
■ [rails][rspec] it_renders, it_assignes, it_flashes
- from: Readable Specs: it renders, it assigns, it flashes My Pragmatig life
- via: RubyFlow-ja(2008-08-17)
RSpec+Railsで、こういうありがちなのは↓
flash[:error].should_not be_nil
response.should render_template("new")
こういう風に書けた方が嬉しくね?という話。
it_flashes :error
it_renders :new
実装はリンク先をどうぞ。spec/spec_helper.rbに追記するだけらしい。簡単ですね。
関係ないけど、
def it_renders(what) response.should render_template(what.to_s) end
の仮引数に「what」を使うという発想はなかったなぁ。
■ [rspec][prog] RSpecみたいな英語DSL的なものが
日本語に存在しないのが遺憾である。
誰か、日本語をそのまま書いたら仕様になるようなシステムも作るべき。なでしこに期待。
…っていうかなでしこそのまんまか?
■ [haskell][prog] Re: 超似非G-Machineを実装してみた - Yet Another Ranha
これは遅延評価言語を作るのに役立ちそう。日本語で読めるのがありがたいですね。
Haskellとか実装したい人は読むといいのかな。
Windows DreamScene?<br>僕的には気が散ってダメでした・・・
おお、既に実現されてるのですね。<br>あまり動きのないほうが作業には向いてるかもなぁ。