selectでフィルタ

filter関数を読んでいるうちに「Rubyでは何だっけ?」と思ってごそごそ調べました。

p "HelloWorld".split(//).select {|c| /^[A-Z]$/ =~ c }
#=> ["H", "W"]
  • HaskellではStringは[Char]だけれど、Rubyは違うんだっけ。
  • HaskellではChar.isUpperだけれど、Rubyでは何だっけ。ええい /^[A-Z]$/ で調べちゃえ。
  • さすがにブロックは覚えていた。