タグ

Haskellとsudokuに関するnsyeeのブックマーク (1)

  • Ersatzを使って数独を解く - Qiita

    ErsatzはSATソルバの入力をモナドの力で生成してくれるライブラリ。適当にexistsとassertを並べればうまくやってくれるらしい。ということで、数独ソルバを実装してみた。素晴らしい… import Prelude hiding ((||), (&&), not, and, or) import Data.Char import Data.Array import Data.Ix import Data.Word import Control.Monad import Control.Monad.State import Ersatz -- (ersatz-0.2) fieldRange = ((1,1),(9,9)) unique :: Equatable a => [a] -> Bit unique = go [] where go ss (x:xs) = and (map (

    Ersatzを使って数独を解く - Qiita
  • 1