Ruby

PerlでDSL

『Rubyによるデザイン・パターン』を読み終えて内部DSLが分かった気になった。調子に乗ってPackRat*1をPerlに移植してみた。少しPerl風にアレンジ。まず、内部DSLから。 # 内部DSL(backup.pr) backup { from => '/home/hoge/old1', to => '/tmp/backup', fil…

Rubyでチャーチ数

Rubyに慣れるとっかかりとしてチャーチ数を定義してみた。 lambdaで包まずに関数リファレンスを関数に渡す方法がわからない。。 # 数値(xに対するs関数の適用回数で数値を表す) def zero (s, x) x end def one (s, x) s[x] end def two (s, x) s[s[x]] end d…