Peter Norvig 氏の Solving Every Sudoku Puzzle というエッセイで、数独の解き方が Python を使って示されています。 ちょうど SRFI-42 (eager comprehension) というライブラリを使ってみたいなと思っていたところに見つけたので、ジェネレータ式というものが多用されているこの Python コードは恰好の題材でした。 ということで、原文の流れに沿いながら Scheme に訳していきたいと思います。 まず用語を紹介しておきます。 9x9マスの縦の列を column、横の列(行)を row と言うのは自明と思いますが、3x3 のまとまりは block、そして各マスを square と呼んでいます。 さらに、row、column、block それぞれ9マスずつのまとまりを unit、1つの square が所属する unit 内の