# Print the sudoku board one row at a time. sp {init*printing (state ^name print-board) --> ( ^row-printed 0) (write (crlf) )} sp {propose*print*row (state ^name print-board ^row-printed { < 9 } ) --> ( ^operator + = ) ( ^name print-row ^row ( + 1 ))} sp {apply*print*row (state ^name print-board ^superstate.board ^row-printed ^operator ) ( ^name print-row ^row ) ( ^square ) ( ^row ^column 1 ^contents ) ( ^row ^column 2 ^contents ) ( ^row ^column 3 ^contents ) ( ^row ^column 4 ^contents ) ( ^row ^column 5 ^contents ) ( ^row ^column 6 ^contents ) ( ^row ^column 7 ^contents ) ( ^row ^column 8 ^contents ) ( ^row ^column 9 ^contents ) --> (write (crlf) | [ | | | | | | ][ | | | | | | ][ | | | | | | ] | ) ( ^row-printed - )} sp {propose*terminate*printing (state ^name print-board) --> ( ^operator + < = ) ( ^name terminate-printing)} sp {apply*terminate*printing (state ^name print-board ^superstate.board ^operator ) ( ^name terminate-printing) ( ^print yes) --> ( ^print yes - ) #take off the printing flag (write (crlf) ) }