2013-07-01 4 views
7

Является ли 2htdp/universe учебным пособием хорошим (или плохим, или нет) примером функционального реактивного программирования?Является ли ракетка «вселенной» обучающим примером FRP?

Кажется, что это соответствует концепции (новое состояние мира, построенное на каждом тике/вводе), но я никогда не видел связанную с ним метку FRP.

ответ

10

Семейство языков программирования Racket поставляется с FrTime, языком, который превращает (большую часть) Racket в язык FRP. Если вы запускаете это взаимодействие в ответ на приглашение, например,

> (current-time) 
Tue Jul 2 09:31:06 EDT 2013 

Вы постоянно видите точное время. (Хорошо, это использовалось для работы с current-seconds, в отчете содержится отчет об ошибке.) Насколько я могу судить, программа frtime рассматривает переменные как потоки событий, и эта идея имеет важное значение для FRP.

Программа юниверса в отличие явно связывает обработчики событий (и функции рендеринга) с определенными OS-перехватами (например, щелчками мыши). Эти обработчики получают полное состояние и возвращают полное состояние плюс запросы на действия (например, отправка сообщения). В этом смысле вселенная не является языком FRP.

Если вы хотите разделить языки на явные vs неявные FRP-языки, вы можете классифицировать обучающий пакет Universier как явный FRP-язык.

Смежные вопросы