Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- self_retrace :: Instructions -> Instructions -> Instructions -> Instructions -> Instructions
- self_retrace Stop prev_colour prev_style prev_pen = Stop
- self_retrace (PenDown i) prev_colour prev_style prev_pen = andThen prev_colour (andThen prev_style (andThen prev_pen (self_retrace i prev_colour prev_style (PenDown Stop))))
- self_retrace (PenUp i) prev_colour prev_style prev_pen = andThen prev_colour (andThen prev_style (andThen prev_pen (self_retrace i prev_colour prev_style (PenUp Stop))))
- self_retrace (SetColour x i) prev_colour prev_style prev_pen = andThen prev_colour (andThen prev_style (andThen prev_pen (self_retrace i (SetColour x Stop) prev_style prev_pen)))
- self_retrace (SetStyle x i) prev_colour prev_style prev_pen = andThen prev_colour (andThen prev_style (andThen prev_pen (self_retrace i prev_colour (SetStyle x Stop) prev_pen)))
- self_retrace (Move x i) prev_colour prev_style prev_pen = andThen prev_colour (andThen prev_style (andThen prev_pen (andThen (self_retrace i prev_colour prev_style prev_pen) (Move (-x) Stop))))
- self_retrace (Turn x i) prev_colour prev_style prev_pen = andThen prev_colour (andThen prev_style (andThen prev_pen (andThen (self_retrace i prev_colour prev_style prev_pen) (Turn (-x) Stop))))
- retrace :: Instructions -> Instructions
- retrace Stop = Stop
- retrace i = self_retrace i Stop Stop Stop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement