In Chapter 9, Composing Visual Interfaces, we saw how easy it is to handle events on widgets by attaching actor code blocks. We encountered several examples where a change or action in one face influenced another face—for example, clicking a button changes a text in a field. The text field reacted to the button because we explicitly coded an actor on the button.
Look at the following code snippet:
;-- see Chapter10/reactive1.red:
point: [x: 3 y: 5]
distance: square-root (point/x ** 2) + (point/y ** 2)
print distance ;== 5.8309518948453
point/x: 2
print distance ;== 5.8309518948453 <-- doesn't change!
distance: square-root (point/x ** 2) + (point/y ** 2)
print distance ;== 5.385164807134504 <-- changed
The distance word gives the distance of point to the origin, but when the point's coordinates change, distance does not change...