我最近发现了FP错误(试图学习Haskell),到目前为止,我对我所看到的(一流函数、惰性求值和所有其他好东西)印象深刻。我还不是专家,但我已经开始发现对基本算法进行“功能性”推理比命令式推理更容易(而且我很难回到我必须回到的地方)。
然而,当前FP似乎无法实现的一个领域是GUI编程。Haskell方法似乎只是包装命令式GUI工具包(如GTK+或wxWidgets),并使用“do”块来模拟命令式样式。我没有使用过f#,但我的理解是它对。net类使用OOP做了类似的事情。显然,这有一个很好的理由——当前的GUI编程都是关于IO和副作用的,所以纯函数式编程在大多数当前框架中是不可能的。
我的问题是,是否可能有一种函数式的GUI编程方法?我很难想象这在实践中会是什么样子。有人知道有什么框架,实验性的或其他的,尝试过这类事情(甚至有什么框架是为函数式语言从头设计的)吗?或者解决方案只是使用一种混合的方法,用面向对象的GUI部分和FP的逻辑?(我只是出于好奇而问——我很乐意认为FP是“未来”,但GUI编程似乎是一个相当大的洞需要填补。)