A computer program responds to a mouse click by running a function.
Here is an example of an event handler function:
f = (e) -> moveto e click f
Try it out. What does it do?
1. The function
(e) -> moveto e
takes one input
and then it does one action: it
moves the turtle to the location of the object
e. That function is given the
f = (e) -> moveto e.
Any name would work fine.
2. The command
click f tells the
computer to call
the user clicks the mouse.
3. Every time you click, the computer
creates an "Event" object representing the
mouse click position, and it runs the
f, passing the mouse
click event as input.
Programmers often skip the step of giving
a name to a function. We can just define
the function directly and give it to the
click command without naming it.
This code does the same thing as the above
code, but it doesn't assign a name to
click (e) -> moveto e
There are other types of events. For example,
each time the mouse moves, the computer can
call a function each time the mousemoves
by the command
Mousemove events happen very quickly, so
to keep up with them, it is a good idea to
move the turtle quickly with
speed Infinity mousemove (e) -> moveto e click (e) -> pen random color