今日も部員名簿の件でやらかす寸前でした…
顧問の先生方のはんこをもらうのに一緒についてきてくれたTくん、Nくん、店長に感謝します。
ところで…リレーブログなのに特に書くことがないという危機に直面しているのですが、
とりあえず最近のちょっとしたことを書きます。
4月末にあるきっかけでRuby (on Rails) の学習を開始しました。
今までわざわざ習得する必要もないかと気にしていなかったRubyですが、
実際にirbとかで触ってみてわかりました。「あぁ〜だから流行ってるんだなあ」って。
とにかく柔軟なんです。
例として言えば、関数型言語のHaskellの持つ簡潔な数列表現(リスト)を、
Rubyでは特に余計な手順を踏むことなく真似ることができます。
例: 1から10までの数列
Haskell: [1..10]
Ruby: [*1..10] もしくは (1..10).to_a()
上記の例では、Haskellにおけるリスト生成と等価な処理をRubyでさせています。
Rubyの方には*(アスタリスク)がついていますね。
これは、本来[1..10]とだけ書くと数の範囲を表現するRangeオブジェクトと
解釈されるところに、"展開する"という意味の演算子としておくことで
うまい具合にできるというものです。さらに、
例: 1から100までの総和を計算する
Haskell: sum([1..100])
Ruby: [*1..100].inject(:+)
という風に、injectという謎のメソッドと謎の引数(?)を使うことで
総和だって簡単に計算できるのです。
その他あまりにもテクニックがありすぎて初心者の私はどこから学べばいいやらという感じも
しましたが、それは実際にRailsも合わせて学習することで身につくかなということにして
少しずつ頑張ることにします。