Scala

プログラミングHaskellをScalaで解く(その5)

引き続き、『プログラミングHaskell』の例題と練習問題をScalaで書いてみる。プログラミングHaskellGraham Hutton P.113 ライフゲーム 『プログラミングHaskell』では、ライフゲームは「第9章 対話プログラム」内の例として挙げられる。 val width:Int = 5 v…

プログラミングHaskellをScalaで解く(その4)

引き続き、『プログラミングHaskell』の例題と練習問題をScalaで書いてみる。プログラミングHaskellGraham Hutton P.139 切符番号遊び(the countdown problem) 代数的データ型を用い、任意の個数の自然数で目標値を構成するための演算を発見する。制限等は全…

プログラミングHaskellをScalaで解く(その3)

引き続き、『プログラミングHaskell』の例題と練習問題をScalaで書いてみる。プログラミングHaskellGraham Hutton P.119 型宣言 typeによって型に別名を与える手段としての、型宣言の手法は既に示した。 type String = List[Char] type Pos = (Int, Int) typ…

プログラミングHaskellをScalaで解く(その2.9431818)

引き続き、『プログラミングHaskell』の例題と練習問題をScalaで書いてみる。プログラミングHaskellGraham Hutton P.83 文字列の変換器 文字列を0/1のビット列に変換して送信、受信側でビット列を文字列に復号化することを考える。 type Bit = Int 分かり易…

プログラミングHaskellをScalaで解く(その1.892857)

引き続き、『プログラミングHaskell』の例題と練習問題をScalaで書いてみる。プログラミングHaskellGraham Hutton 前回の改良 concat プログラミングHaskellをScalaで解く(その2) - DiaryExceptionの「P.71 練習問題6.8.3」で「concatを再帰で作れなかった。…

プログラミングHaskellをScalaで解く(その2)

引き続き、『プログラミングHaskell』の例題と練習問題をScalaで書いてみる。プログラミングHaskellGraham Hutton 前回の改良 前回作った関数 halve, pairs, positions 等はリストを1つ取って値を返すので、リストのメソッドとした方がScalaらしい。Implicit…

プログラミングHaskellをScalaで解く

1週間ほど掛けて、じっくりと取り組んだ『プログラミングHaskell』は、全ての関数型言語独学者が読むべき、と感じるほど、優れた内容と構成だった*1。教科書として洗練しており、最初から読み進め、手を動かすことで、Haskellを通してプログラミングの基礎、…