d shift3 m produces the 3 matrices shifted by d*-1 0 1.
d MAS m identifies the A in MAS in direction d.
d xMAS m identifies the A in MAS in direction d or -d.
xMAS m identifies the A in an X-MAS.
d shift3 m produces the 3 matrices shifted by d*-1 0 1.
d MAS m identifies the A in MAS in direction d.
d xMAS m identifies the A in MAS in direction d or -d.
xMAS m identifies the A in an X-MAS.
pad dot-pads the matrix to avoid wraparound.
x y shift m rotates the matrix x left, y down.
d(=x y) shift4 m produces the 4 matrices shifted by d*0 1 2 3.
d XMAS m identifies the X in XMAS in direction d.
pad dot-pads the matrix to avoid wraparound.
x y shift m rotates the matrix x left, y down.
d(=x y) shift4 m produces the 4 matrices shifted by d*0 1 2 3.
d XMAS m identifies the X in XMAS in direction d.
The function 'c step2 s' is the updated state machine, with an extra value tracking whether mul(x,y) is enabled. step2 takes care of do()/don't() processing and invokes 'step' (from part 1) to handle mul(x,y) when appropriate.
The function 'c step2 s' is the updated state machine, with an extra value tracking whether mul(x,y) is enabled. step2 takes care of do()/don't() processing and invokes 'step' (from part 1) to handle mul(x,y) when appropriate.
The function 'c step s' steps the state machine state s to incorporate the new character c.
(step/ flip x) runs the state machine over the whole string, left to right.
The reduction base case for "...yz" is 'y' step 'z', which step rewrites to ('y' step 'z' step initial-state).
The function 'c step s' steps the state machine state s to incorporate the new character c.
(step/ flip x) runs the state machine over the whole string, left to right.
The reduction base case for "...yz" is 'y' step 'z', which step rewrites to ('y' step 'z' step initial-state).