purescript-free-turtle icon indicating copy to clipboard operation
purescript-free-turtle copied to clipboard

A toy turtle graphics interpreter based on the Free monad, in PureScript, with HTML Canvas graphics support.

#+title: PureScript Free Turtle interpreter

A simple Turtle graphics system implemented using a ~Free~ monad, intended for educational purposes. It comes with an interpreter that translates programs in the Turtle language to HTML canvas graphics.

[[file:img/two-stars.png]]

#+BEGIN_SRC purescript main :: Effect Context2D main = CanvasInterpreter.render "turtleCanvas" do color Purple star

forward 40.0 left 100.0

color Red star

star = do penDown right 144.0 forward 100.0 right 144.0 forward 100.0 right 144.0 forward 100.0 right 144.0 forward 100.0 right 144.0 forward 100.0 penUp #+END_SRC

  • Usage

In your shell, type:

: npm install : npm run build : npm run bundle

Then point your browser to [[./html/index.html]].