Hacker News new | ask | show | jobs
by crustycoder 154 days ago
Or perhaps just use a language that's designed to solve those sorts of problems? In 14 lines of code.

https://www.swi-prolog.org/pldoc/man?section=clpfd-sudoku

2 comments

Is there a similarly short/simple solution not using all of the built ins? Haven't worked with prolog in a while but should be easy enough with primitives (albeit with more duplication)?
Well no, not really. The whole point is to use the appropriate tool for the task at hand. In this case it's the CLP(FD) library, https://www.swi-prolog.org/pldoc/man?section=clpfd
Why not just

    blocks(Rows, Blocks), maplist(all_distinct, Blocks), maplist(label, Rows)