Step by Step Scala #04 にいってきた
- Monad の話
- 定型だよ
- Option型 とか List型 から入ってみよう
- 定型だよ
- fold の話
- closure
- Coq をやればいいじゃない
- バスを予約すればいいじゃない
- Swarm : スケールする継続を使ったフレームワーク? http://code.google.com/p/swarm-dpl/
- こっちの Swarm じゃない http://www.unfindable.net/~yabuki/article/swarm/
- flatten は,List[List[A] ] -> List[A] だった
- Tree[A] じゃない
- List[List[A] ] なのに,flatten がcar に対しても呼ばれてんのは何でんじゃー.と思ったら気の所為だった
- Tree[A] じゃない
- ダックタイピングもできるよ
- この辺がObject 指向的な
- 無名クラスでメソッドを持つものとして指定する
- この辺がObject 指向的な
- 半透明の名刺を頂いた
- for の中身は展開した中身を考えれるようになった方が慣れそう
- yield => map
- if => filter
- 多重ループ => flatMap(n-1回) + map
- 懇親会の 約40% がAgda セミナーに行っていたとかいう
- Scala には単純な末尾再帰があるよ
// map の型 def map[A](List[A], f:A=>B):List[B] // ダックタイピング的な(コピペ def hello( who:{def name:String} ) = "Hello I'm " + who.name class Dog(var name:String) hello( new Dog("pochi") )
どうでもいいツッコミ
- とりあえず append → reverse でも良かったのでは
- 末尾再帰するとこうやって書けるよーで
- 制限時間的な意味で
- 末尾再帰するとこうやって書けるよーで
参考