Является ли учебный пакет вселенной рэкета примером FRP?

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

Вроде подходит под концепцию (новое состояние мира строится на каждом тике/вводе), но я ни разу не видел связанной с ним метки FRP.


person Rhangaun    schedule 01.07.2013    source источник


Ответы (1)


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

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

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

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

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

person Matthias Felleisen    schedule 02.07.2013
comment
Что вы подразумеваете под явными и неявными языками FRP? - person k4rtik; 15.04.2020