2012-01-01から1年間の記事一覧

ScalazのTagged typeとshapelessのNewtype

Scalaz Advent Calendarの二日目です。 Tagged type ある型クラスのインスタンスが同じ型に対して複数定義されている場合、importによって使用するインスタンスを制御することができます。 object s1 extends App { type User = String object Hatena { impo…

Squirrelの関数を持ち上げる

前回の続きです。 Squirrelの関数をcurry化してどうすんのって話ですが、関数を持ち上げるのに使ってみます。 というよりそれをやりたくて必要になったのでcurryを書いたのでした。 関数を持ち上げるとは?普通の関数を文脈の中で作用する関数に変換すること…

Squirrelでカリー化

カリー化のオレオレ定義がまたひとつ / javascript で遊ぶラムダ式、クロージャ、カリー化 by rti 7743 on Prezi prezi.com/9brwewgcxtr2/j…— kxbmapさん (@kxbmap) 9月 27, 2012 これの資料自体は結構古かったですね。部分適用の特殊な場合をカリー化として…

SquirrelでOption

Squirrelの標準関数は失敗したらnull返すことも多くて*1、チーム内で-1返すのとどっちがいいのよみたいな話もしたけど、どっちも微妙ってのが正直なところです。 そこでOptionですよ。 Squirrel 3.0.3 実際には仕事で使ってるの2.xなのでラムダ式とかなくて…

IntelliJ IDEA Scalaプラグインのimplicit関連機能

IntelliJのScalaプラグインでよく使うimplicit関係の機能について。 code completion 暗黙型変換によって使えるようになるメソッドも補完されます。また、それらには名前に下線が引かれます。 あるデータに対して何かやりたいとき、とりあえずimport scalaz.…