正規表現 ¥w 相当の文字列を生成するプログラム
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
という文字列(英字大小と数字及びアンダースコア・・・正規表現 ¥w 相当、但し並び順はどうでもいいです)を生成するプログラムを教えてください。
◎この質問は、プログラムの書き方がわからないのではなく「こんな書き方もできる」の募集です。
◎面白いプログラム、とても短いプログラム、トリッキーなもや勉強になるものは喜ばしいです。
◎このプログラムが役立つ場面は想像できません :-P
http://www.dm4lab.to/~usa/ruby/d/200510a.html#id20051004_P1_1
の最短解より。
irb(main):020:0> (0..?z).map{|e|e.chr[/\w/]}.to_s => "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"
Rubyのコンパクトな記述も驚嘆に値しますが、id:sumimさんの手によるSmalltalkの解のシンプルさ。なんて読みやすい。さすがはRubyのブロック・イテレータの基になっている、オブジェクト指向言語の開祖。
http://d.hatena.ne.jp/sumim/20051005/p1
(($0 to: $z) as: String) select: [:each | each isAlphaNumeric or: [each = $_]]