戦略 Scala 日記

素人プログラマの思考のセンス

2015-02-01から1ヶ月間の記事一覧

Doubleにべき乗演算子をつくるには?finalクラスを拡張する方法

Scalaの暗黙の型変換については、以前にも扱った。 形式知にして使う、暗黙のimplicit - 戦略 Scala 日記 今回は、implicit classを使って、クラスを拡張する方法を考える。 また継承が禁止されているJavaのfinalクラスを拡張して、オリジナルなメソッドをつ…

高階関数の引数あれこれ

カリー化した関数定義で、引数に渡した高階関数に 別の引数リストの結果を渡すとき、下記のように定義すると java.lang.AssertionErrorとなる。 def func1(x: Int)(g: Int => Int): Int = g(x) ここで注意したいのは、1つ目の引数リストの結果を一度 ローカ…

Optionにはifを使うなfilterを使え

ウェブアプリケーションを作っていると、下記のコードのvalue変数のように、値を受取るOption型の変数の中に値が入っている場合、かつ空文字列ではない場合のみ処理をしたいというケースはよくある。 val value: Option[String] = Some("1234") if (value.is…

Hello Slick! チュートリアルで学ぶSlickの基本作法

Typesafe Activatorのチュートリアルとして用意されている、Hello Slick!のソースコードを元に、Slickの基本的な使い方を紹介する。 Hello Slick! - Typesafe Activator | Typesafe http://typesafe.com/activator/template/hello-slick activator uiコマン…

形式知にして使う、暗黙のimplicit

「暗黙のXX」と訳される、Scalaの"implicit"キーワード。 しかし、その動作をちゃんと理解しないままでも、 Scalaのimplitiキーワード(暗黙のXX)が使われるのは次の2つの場合。 暗黙の型変換 暗黙の引数 これだけなのだが、初学者にとってややこしく感じる…