第11回Ruby勉強会@関西に行ってきた
行ってきました.詳細は日本Rubyの会 公式Wiki - KansaiWorkshop11にて.以下,感想であって,レポートではありません.
Exerb入門
マカーには殆ど縁のない話だったけど,YAMLで書かれたレシピファイルを自動生成したりとか,ってのはスゲーCoolな感じがした.てかYAML良いな.RubyやるならXMLよりYAMLだな.
るびまをちゃんと読まないと.してだな,Plag○erみたくナウでヤングな感じのをRubyでも!みたいな.実現できたら流行りそう.
RRSE
これは便利くせぇ.ボクはVim派ではなくEmacs派なので,こーゆーのは大歓迎.補完機能とか楽しみにしてますよ,とか書いてみたものの,補完しなければならないほどにRubyのメソッドって長くないよね.
Rubyクイズ
結構難しかったと言うか,ハマったと言うか.いやそれはちゃんとボクが言語仕様を学んでないからなんだろうけど.参照がどうとか破壊的だとかは,落とし穴なんじゃないかなマジで.
ライトニングトーク
一言で言うと「ワロス」.もう一言付け加えると「ぜひ参加させてください」.大阪で,まつもとゆきひろさんやら,もう兎に角豪華なメンバーが,えーっと早すぎて覚えてませんが楽しみです.(駄目だなー)
Ruby初級者向けレッスン
初心者ではなく初級者ってのが,相変わらずポイントだよなと思う.だって初心者はイテレータなんて「使う側」で,「作る側」ではないよなと.結局,yieldってブロック渡してcallしてんのと,あんまり変わらないのかな.
イテレータ実験
irb(main):001:0> def hoge irb(main):002:1> yield irb(main):003:1> end => nil irb(main):004:0> def fuga(&b) irb(main):005:1> b.call irb(main):006:1> end => nil irb(main):007:0> hoge{p "hello"} "hello" => nil irb(main):008:0> fuga{p "hello"} "hello" => nil
ちなみに,ブロックを渡さないときのエラー出力は違う.
irb(main):009:0> hoge LocalJumpError: no block given from (irb):8:in `hoge' from (irb):15 irb(main):010:0> fuga NoMethodError: undefined method `call' for nil:NilClass from (irb):11:in `fuga' from (irb):16
ブロックをそのまま渡すか,ブロックをオブジェクトとして渡すか,ということかな?でもブロックってオブジェクトになり得るのかしら.ってそれはクロージャなのか?
irb(main):011:0> b = lambda{p "hello"} => #<Proc:0x00025180@(irb):11> irb(main):012:0> hoge{b.call} "hello" => nil
もちろん,こんな意味わからんこともできるわな.
irb(main):013:0> def hige(b = lambda{}) irb(main):014:1> b.call irb(main):015:1> end => nil irb(main):016:0> hige b "hello" => nil
はぁぁ,馬鹿っぽい.ただ,これだとブロック渡さなくてもエラー出ませんよ:)
どうでも良いことだけど,RubyのinjectはHaskellでいうとこのfoldlなんだな.
irb(main):001:0> (1..10).inject(1.0){|r,e| r /= e} => 2.75573192239859e-07 Hugs.Base> foldl (/) 1 [1..10] 2.75573192239859e-07
もういっちょどうでも良いことだけど,コウザイさんのプロフィールのさぁ,
Rubyとは大学の授業で出会いました。
なんて良い大学なんだ!!ウチなんかCとJavaだけだYO!
くく
array << elem
くくって読むのが,今年は来るかもしれない.
懇親会
男はロックで
今度は原チャでなくバスで行きたいと思います.
会話が楽しかった
前回は「恐縮です」って感じで,それほど輪に入れなかった感があったけれども,今回は結構会話に参加できたかな?id:hakobe932が結構テンション高くてビビった.そして懇親会こそRuby勉強会のメインイベントではないかと思ってしまった.情報交換は必要だよ.