List

関数じゃなくてもモナドになれる

また、間が開いちゃったんですが、少し前にどんな関数でもモナドになれる件をかいたのですが、今回、さらに一歩進めて、ただの値でもモナドになることを書きたいと思います。ということでこちら: newtype V a = V {unv :: a} instance Monad (V) where retu…

バックトラックとリストモナド

ここ2-3週間、暇を見つけては数独ソルバーをHaskellで書いていました…動くもの自体ができるまではそんなにかからなかったのですが(と、一応言っておいて…)、プロファイルをとりながら高速化していくステップで色々と試行錯誤があって、自分的には「なるほ…

リストの自由度

Haskellのリストの自由度のこと、ちょっと見直してみました。 リストの決まりごとは:同じ型の要素しか保持できない。 [1, 2, 3] -- ok [1, 'a', 3.4] -- NG 逆に、型が同じであればいくつあってもかまわない。 [ ], [1], [2, 3], [1..] :: [Int]この2つの…