Prologでレイトン風謎解きをエレガントに解決する
2025-04-08
著者は自身の著書『プログラマーのための論理学』において、論理プログラミング言語に関する章を書き直し、レイトン風謎解きを用いてPrologの威力を示しました。この謎解きは、最初の3人の生徒の点数を基に、4人目の生徒の点数を推測するというものです。簡潔なPrologコード(わずか15行!)を用いて、著者はPrologのパターンマッチングと双方向性を巧みに利用し、この問題をエレガントに解決し、考えられる全ての解答キーを見つけ出し、最終的に4人目の生徒の点数が6点であると結論付けました。より長く非効率的な解法との比較も行われています。著者は謎解きを教育に用いることに反対していますが、この例はPrologの実用的な可能性を示しています。
開発
謎解き