Сегодня отвлекся немного от лямбд и поделал пару упражнений из htdp про интерактивные программы. На картинке результат одного из них: машина едет мимо деревца и телепортируется по клику мыши.

Программа разделена на две части: модель и представление. Модель — это данные, которые описывают состояние программы и функции над этим состоянием. Конкретно в этом случае состояние максимально простое — всего одно число, описывающее расстояние от левого края окна до машины. Представление — это функция, которая принимает состояние и возвращает картинку.

Нужно чтобы модель и представление были независимыми друг от друга, чтобы их можно было редактировать по отдельности.