はじめましてRuby
なんか色々な巡回先のブログとかに出現する確率高いしRubyしようと思った。どの言語も並以下にしか扱えないのにアチコチ節操無いな俺。Rubyは前から「やろーかなー」としばしば思ってたけど、Pythonはイマイチやる気になれない。たぶん名前の見た目がなんか落ち着かないから。拡張子のpyとかはかなり妙な気分。余談余談。
Rubyは以前ActiveScriptRubyをインストールした。irbを動かすのとかには色々なライブラリが必要だったりするので、Windowsならこれが便利。
最初っからirbという環境があるのは嬉しい。そういうのはSchemeとかOCamlで体験したのが先だったけど、こういうインタプリタとの対話環境は嬉しい。特に言語を習得するにはとても便利。Perlにもperlshというものがある。けど、Windowsだとどうも入れるのが面倒。cygwinとかはあんまり入れたくないし。perl -dでもそれなりのことはできるけど。
ということで適当にirbと適当にダラダラおしゃべりしてみる。
irb(main):020:0> "Hello World" => "Hello World" irb(main):004:0> print "Hello World!" Hello World!=> nil irb(main):005:0> puts "Hello World" Hello World => nil irb(main):008:0> while gets; print end hoge world hoge world hello hello ^Z => nil irb(main):012:0> print (if 3==2 then "true" else "false" end) false=> nil irb(main):014:0> print (if 3==3 : "true" else "false" end) true=> nil irb(main):034:0> def fact x; a=1;while x!=0; a*=x;x-=1 end; a end => nil irb(main):036:0> fact 5 => 120 irb(main):042:0> eval "print 300" 300=> nil irb(main):043:0> [0, 1, 2, 3] => [0, 1, 2, 3] irb(main):059:0> for i in [0, 1, 2, 3]; print i end 0123=> [0, 1, 2, 3] irb(main):060:0> Array.new [0, 1, 2, 3] => [0, 1, 2, 3] irb(main):065:0> Array.new(4) {|i| i} => [0, 1, 2, 3] irb(main):069:0> [0, 1, 2, 3].each {|i| print i} 0123=> [0, 1, 2, 3] irb(main):070:0> [0, 1, 2, 3].map {|i| i+=1} => [1, 2, 3, 4] irb(main):091:0> [0, 1, 2, 3].map {|i| i.to_s} => ["0", "1", "2", "3"] irb(main):111:0> [0, 1, 2, 3].grep(2..10) => [2, 3]
Perlなんかと似てる部分も多いし、適当にirbと対話し続けるのはあまり苦にならない。そのうちPerl程度には使えるようにはなれそう。
参考
- http://www2.ruby-lang.org/ja/20020310.html
- http://www1.tf.chiba-u.jp/~shin/tutorial/
- http://www2.ruby-lang.org/ja/man/?cmd=view;name=Ruby%A5%EA%A5%D5%A5%A1%A5%EC%A5%F3%A5%B9%A5%DE%A5%CB%A5%E5%A5%A2%A5%EB
- http://www2.ruby-lang.org/ja/man/?cmd=view;name=Ruby%A4%CE%CA%B8%CB%A1
- http://www.lab.ime.cmc.osaka-u.ac.jp/~kiyo/pub/lecture/unixpro/ruby/