« 2007年05月 | メイン | 2007年07月 »

2007年06月 アーカイブ

2007年06月19日

第16回Ruby勉強会@関西に行ってきた

「Ruby 初心者向けレッスン第13回」の演習問題は以下の通り。
色々なメソッドを定義してみましょう

Part1
.引数を三つ受け取り、引数の内容に応じて計算結果を返すメソッド
  - 三つの引数のうち一つは演算子を表す文字列です
  - 残りの二つは数値です
  - eval系メソッドの使用は禁止です
  - 最低限、四則演算を実装して下さい。それ以上実装するのは自由です。

Part2
・先ほど作成したメソッドに以下の機能を追加して下さい
  - ゼロ除算した場合は例外メッセージを日本語で表示させる
  - 対応していない演算子が与えられた場合は例外を発生させる

Part3
・先ほどまでに作成したメソッドの引数で受け取ることができる数値の個数を無制限にしてください
  - ただし、演算子は一つでいいです。
  - 例えば+,1,2,3のような引数が渡された場合の結果は6です。
で、私の実装は以下の通り。
def part1(operator,arg1,arg2)
  case operator
  when "+"
    arg1+arg2
  when "-"
    arg1-arg2
  when "*"
    arg1*arg2
  when "/"
    arg1/arg2
  end
end

def part2(operator,arg1,arg2)
  begin
    case operator
    when "+"
      arg1+arg2
    when "-"
      arg1-arg2
    when "*"
      arg1*arg2
    when "/"
      arg1/arg2
    else
      "その演算子には対応していません。"
    end
  rescue ZeroDivisionError
    "0で除算されました。"
  end
end

def part3(operator,arg1,*args)
  begin
    rtn=arg1
    args.each{|arg|
      case operator
      when "+"
        rtn+=arg
      when "-"
        rtn-=arg
      when "*"
        rtn*=arg
      when "/"
        rtn/=arg
      else
        "その演算子には対応していません。"
      end
    }
    rtn
  rescue ZeroDivisionError
    "0で除算されました。"
  end
end
一応実装はできたが、Rubyっぽいかどうかは不明。

Ruby会議にも実は参加していた

常日頃、職業プログラマを生業としているが、Ruby会議に参加して本当のプログラマ精神を思い出した気がする。
プログラマは製造者ではなく創造者なのだ。
極々当たり前のことをすっかりと忘れていた。
あの場所であの時間を共有できた事に感謝する。
世界に名立たるプログラマの話を聞く機会を与えてくれた全ての人に感謝する。

Ruby会議のMacBook率

超私感で申し訳ないが、発表者の7〜8割が、会場の半分がMacBookだった気がする。
発表者に関しては、Windows環境の内容もいくつかあったため、これを考慮すると更に割合が高くなる。

AP4Rとまじろうとマスコット駆動開発

「AP4R」と「まじろう」の関係についてどこも言及されていないようなので補足しておく。
(大きなお世話か?)
AP4R => APAR => 画像検索してみた => 「アルマジロ」の写真がいくつかHITした => じゃあマスコットはアルマジロで => 名前は「まじろう」で
自分でも調べてみた。
確かにAPARで検索するとアルマジロのイラストがいくつかhitする。
ただしアルマジロよりもサルの写真の方が目にはつくが...。
試しに「apar Armadillo」とand検索をしてみると数十件引っかかった。
じゃあ「APAR」とは本来どういう意味か調べてみたが、結局わからなかった。
まじろうのおかげでAP4Rの名前は周知されたかもしれない。
しかしAP4Rの機能はまじろうの陰に隠れてしまった気がする。
AP4Rは非同期メッセージングを行なうライブラリで、かなり応用範囲のひろい機能だと思う。
来年の今頃は自分もお世話になっているかもしれない。
Google