functiongui用户在哪里?

对function语言中创buildguis的方法进行了大量的研究。 有推拉/ frp,箭头frp和其他可能优秀的研究库。 许多人似乎都认为这是更原始的方式,但几乎每个人似乎都在使用命令式的绑定库,如gtk2hs和wxhaskell。 甚至被推荐作为优秀 教程的地方也教导了绑定到这些简单的命令库。 为什么不基于玻璃钢研究guis?

自从我之前的回答已经过去了将近一年了, function反应式编程 (FRP)的世界已经发生了变化。

  • 特别是,我在Haskell创build了一个小型的FRP库。 虽然还缺less一些function,但是以一个纯粹的function性风格来实现GUI已经是一个很好的方法,正如一系列示例所展示的那样。 这里有一个截图: 在这里输入图像说明

  • 和以前一样,Web浏览器中还有一个用于FRP的JavaScript库Flapjax 。

虽然每个人都同意function反应式编程 (FRP)是实现graphics用户界面的方法,但是在Haskell中还没有出现完善的库。 我认为主要原因是:

  • 平衡performance力VS资源使用是困难的(空间泄漏,时间问题)。 您的FRP模型越是富于performance力,在保证效率的同时,越难实施。 devise空间仍在探索之中。
  • API方便。 FRP非常适合实现Time -> MouseInput -> Picture这样的函数,但像GTK +或Cocoa这样的GUI平台并不像这样工作,问题是如何以FRP风格expression后者,传统的风格。

换句话说,玻璃钢研究尚未完成。

这就是说,一些实际的实现已经存在,例如Flapjax ,一种编译成JavaScript的语言。

无论如何,没有人可以阻止你实现自己的FRP库,为特定目的量身定做,并从中获益匪浅。 卢克·帕尔默(Luke Palmer)成功地做到了,而且我现在也在尝试。 (我宁愿浪费我的时间与FRP比可变variables。)

我知道老线程,但Elm( elm-lang.org )正在迅速成为“现实世界”玻璃钢的中心。 它编译为JavaScript,并在其中写入Elm网站。