... kommt gerade zum Tragen bei der Implementierung von Sodoku-Lösungsstrategien. Ein Sudoku sieht aus wie eine Matrix und lässt sich auch so darstellen. Um solche eine Sudoku-Matrix - ob zwei- oder
fünfdimensional - als Einheit zu bearbeiten, braucht ich mit APL keine einzige Schleife. Das Objekt der Begierde wird einfach nur einer Reihe von APL-Operationen unterzogen, die auf jedes Element der Matrix wirken.
Das klingt sicher erstmal sehr abstrakt. Daher werde ich hier versuchen, dies an folgenden Beispiel zu illustrieren.
Ein gelöstes Sudoku enthält in jeder Zeile, in jeder Spalte und in jedem 3x3-Block jeweils alle Zahlen von 1 bis 9. So ist die Regel. Mit APL lässt es sich nun ganz einfach überprüfen, ob eine vorgegebene 9x9-Matrix SD ein gelöstes Sudoku darstellt:
^/(⍳9)^.∊SD,(⍉SD),9 9⍴3 1 4 2⍉3 3 3 3⍴SD