Back

Learning from Sudoku Solvers (2007)

22 points1 monthravimohan.blogspot.com
crustycoder27 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

cenamus27 days 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)?

crustycoder26 days 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

nurettin27 days ago

Why not just

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

gnabgib1 month 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

Jtsummers27 days ago

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

nurettin27 days 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.