2htdp/universe teachpack是否是功能反应式编程的好(或坏)或不好的例子?
它似乎符合这个概念(世界的新状态建立在每个刻度/输入上),但我从未见过与之相关的FRP标签。
答案 0 :(得分:10)
Racket编程语言系列附带FrTime,这种语言将(大部分)Racket转换为FRP语言。如果您在提示符下运行此交互,例如,
> (current-time)
Tue Jul 2 09:31:06 EDT 2013
你经常看到正确的时间。 (好吧,这曾经与current-seconds
一起使用;错误报告正在进行中。)据我所知,frtime程序将变量视为事件流,而这个想法对于FRP至关重要。
相比之下,Universe程序将事件处理程序(和呈现函数)显式绑定到某些OS挂钩(例如鼠标点击)。这些处理程序获得完整状态并返回完整状态以及操作请求(例如,消息发送)。从这个意义上说,宇宙不是FRP语言。
如果要将语言分为显式和隐式FRP语言,则可以将Universe教学分类为显式FRP语言。