具有堆叠高阶函数或RWS monad变换器的快速扩展性?

时间:2014-09-28 14:35:22

标签: haskell user-interface functional-programming monad-transformers

我正在使用基本的UI工具包。它目前仅包括对齐和光栅化功能。

我试图让它可扩展和清晰。我找到了两种方法,但我不确定/不能找出哪一种更好。

Web应用程序接口(WAI)使用类似于以下的结构:

type CUI = Event -> State UI Picture 
type Middleware = CUI -> CUI -- cool stackable stuff

使用RWS和RWST提供类似的东西:

newtype RWSUI a = RWSUI (RWS Event Picture UI a)
newtype Middleware m a = Middleware (RWST Event Picture UI (RWST Event Picture UI m) a)

莫纳德变形金刚对我来说仍然模糊不清。从长远来看,RWS可能是表达可扩展性的更清晰的方式,但WAI方式似乎已经足够了。我无法从中得到明确的选择。关于如何决定这个的任何建议?

0 个答案:

没有答案