Back

Learning from Sudoku Solvers (2007)

22 points6 daysravimohan.blogspot.com
crustycoder10 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

cenamus8 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)?

crustycoder3 hours 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

nurettin8 hours ago

Why not just

    blocks(Rows, Blocks), maplist(all_distinct, Blocks), maplist(label, Rows)
kayo_202110309 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...

gnabgib6 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

Jtsummers9 hours ago

The one from a couple months ago is here: https://news.ycombinator.com/item?id=45733410

nurettin7 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.