簡體   English   中英

功能gui用戶在哪里?

[英]Where are the functional gui users?

關於在函數式語言中創建guis的方法已有很多研究。 有推/拉frp庫,基於箭頭的frp以及可能還有其他優秀的研究。 許多人似乎都認為這是更原生的方式,但幾乎每個人似乎都在使用命令式綁定庫,如gtk2hs和wxhaskell。 即使是被推薦為優秀 教程的地方也會教授對這些簡單命令式庫的綁定。 為什么不基於FRP研究的guis?

自從我之前的回答已經過去了近一年, 功能反應式編程 (FRP)領域的情況發生了變化。

  • 特別是,我創建了reactive-banana ,一個用於Haskell中FRP的小型庫。 雖然仍然缺少某些功能,但它已經是一種以純功能樣式實現GUI的好方法,如一組示例所示 這是一個截圖: 在此輸入圖像描述

  • 和以前一樣,還有Flapjax ,一個用於Web瀏覽器中FRP的JavaScript庫。

雖然每個人都同意功能反應式編程 (FRP)是實現圖形用戶界面的方法,但是還沒有出現在Haskell中這樣做的全面的庫。 我認為主要原因是:

  • 平衡表達性VS資源使用是困難的(空間泄漏,時間問題)。 FRP模型越具表現力,實施它就越難,同時仍能保證效率。 設計空間仍在探索中。
  • API方便。 FRP非常適合實現Time -> MouseInput -> Picture形式的功能,但是像GTK +或Cocoa這樣的GUI平台不能像那樣工作,問題是如何用FRP風格表達后者而不會比傳統風格。

換句話說,FRP研究尚未完成。

話雖這么說,已經存在一些實際的實現,例如Flapjax ,一種編譯成JavaScript的語言。

在任何情況下,沒有人可以阻止您實施為特定目的量身定制的自己的FRP庫,並從中獲益。 盧克帕爾默已經成功地做到了,我現在也在努力。 (我寧願浪費時間與FRP相比,而不是使用可變變量。)

我知道,老線程,但Elm( elm-lang.org )正迅速成為“現實世界”FRP的中心。 它編譯成JavaScript,並在其中編寫Elm網站。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM