Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. self_retrace :: Instructions -> Instructions -> Instructions -> Instructions -> Instructions
  2. self_retrace Stop prev_colour prev_style prev_pen = Stop
  3. 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))))
  4. 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))))
  5. 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)))
  6. 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)))
  7. 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))))
  8. 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))))
  9.  
  10.  
  11. retrace :: Instructions -> Instructions
  12. retrace Stop = Stop
  13. retrace i = self_retrace i Stop Stop Stop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement