Symbol#pa
[123, 456, 789].map {|i| i.to_s } [123, 456, 789].map(&:to_s)
Symbol#to_procを初めて見た時は喜んでた.確かにこれは素晴らしいけど,じゃあto_sに引数を渡したい時は…?
[123, 456, 789].map {|i| i.to_s(16) }
&:to_sで書いてて,後から↑みたいに直さないといけなくなったら(精神的に)悲惨だ.
そこで,部分適用するメソッドSymbol#paを作ってみた.
[123, 456, 789].map(&:to_s.pa(16)) # => ["7b", "1c8", "315"]
.pa(16)を足すだけでよくなった.
さらに,paを[]にaliasすると,
[123, 456, 789].map(&:to_s[16]) # => ["7b", "1c8", "315"]
これはきもい素晴らしい.
Proc#paもついでに作ったけど,やっぱりpaがあるとcutも欲しくなるなぁ.
ただ,Schemeと違って予約語が作れないから,いろいろ面倒臭い.<>の代わりに適当な定数を用意するとかすればできるけど,美しくない気がする.