投稿者「takatoh」のアーカイブ

sudoku-solver

あいだが空いてしまった。ちょうど1週間だ。5月の連休中から Scala のエントリを1月以上も連続で更新してたのに。まぁ、別にいいんだけど。 で、今日から再開ということで Scala をやろうと思ったんだけど、事情があっ … 続きを読む

カテゴリー: Haskell | コメントする

Implicit Conversion

Implicit Conversion とは、暗黙の型変換をユーザが定義できるようにする機能、だそうだ。例えば、真偽値が必要なところにユーザ定義型が来たとき、その型を真偽値に変換する Implicit Conversio … 続きを読む

カテゴリー: Scala | コメントする

Try

Try には Either と同じように2つの値がある。Success と Failure だ。Either と違うのは、Failure には Throwable の値しか入れられないことだ。こんな感じ。 scala> … 続きを読む

カテゴリー: Scala | コメントする

Either

Option には2つの値 Some と None がある。Some はある種のコンテナで中に別の値を持つことができるけど、None は値を持つことができない。 つまり、エラーが起こったこと自体は None で知らせるこ … 続きを読む

カテゴリー: Scala | コメントする

Option

今日から Scala のエラーを表すデータ型を見ていく。 最初は Option 型だ。Option は言ってみれば値を1つだけ入れられるコンテナで、値の入っている Some と何もないっていないことを表す None の2 … 続きを読む

カテゴリー: Scala | コメントする

部分関数

よくわからないものが出てきた。説明の前に使い方を見てみよう。 scala> List(1,2,3,4,5).collect { case i if i % 2 == 1 => i * 2 } res0: List[Int … 続きを読む

カテゴリー: Scala | コメントする

ケースクラスによって自動生成されるもの

ケースクラス(case class )を宣言すると、ふつうのクラス(class)宣言に加えて、以下のものが追加で生成される。 プライマリコンストラクタ引数を公開する(クラス宣言の引数に val をつけたように動作する) … 続きを読む

カテゴリー: Scala | コメントする

変数宣言におけるパターンマッチング

パターンマッチングは match 式の中だけじゃなく、変数宣言においても使用できる。 例えばケースクラス Point があったとして scala> case class Point(x: Int, y: Int) def … 続きを読む

カテゴリー: Scala | コメントする

ケースクラスとパターンマッチング(2)

パターンマッチングの威力は、昨日見たような型による分岐にとどまらない。というのも各パターンは(ケースクラスがパラメータを持つならば)パラメータを持つこともできるからだ。これでほぼ Haskell のパターンマッチングと同 … 続きを読む

カテゴリー: Scala | コメントする

ケースクラスとパターンマッチング

ケースクラス(case class)は、Scala の強力なパターンマッチングのために必要なものらしい。普通のクラス(class)とどう違うのかよくわからないけど、パターンマッチングに使いたければケースクラスにしておけ、 … 続きを読む

カテゴリー: Scala | コメントする