はじめまして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程度には使えるようにはなれそう。

参考

test