Learning from Sudoku Solvers (2007)
21 points
5 days ago
| 4 comments
| ravimohan.blogspot.com
| HN
crustycoder
6 hours 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

reply
cenamus
5 hours ago
[-]
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)?
reply
crustycoder
8 minutes ago
[-]
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
reply
nurettin
4 hours ago
[-]
Why not just

    blocks(Rows, Blocks), maplist(all_distinct, Blocks), maplist(label, Rows)
reply
kayo_20211030
5 hours ago
[-]
Peter Seibel's original post is worth reading in its entirety.

It's a decently balanced piece. It leaves room for various views, and its summation seems about right.

https://gigamonkeys.wordpress.com/2009/10/05/coders-unit-tes...

reply
gnabgib
5 days ago
[-]
Some comments 2 months ago (15 points, 7 comments)

2012 (28 points, 9 comments) https://news.ycombinator.com/item?id=4434744

2010 (65 points, 48 comments) https://news.ycombinator.com/item?id=1221399

reply
Jtsummers
5 hours ago
[-]
The one from a couple months ago is here: https://news.ycombinator.com/item?id=45733410
reply
nurettin
4 hours ago
[-]
I remember implementing some of these

https://www.stolaf.edu/people/hansonr/sudoku/12rules.htm

With a simple array of unsigned int and bit operations like 20 years ago. It could solve a lot of puzzles within microseconds. Later I realized rules 1, 2, 5, 6 are pretty much the same.

reply