我最近发现了FP bug(试图学习Haskell),到目前为止我已经看到了(一流的功能,懒惰的评估和所有其他好东西).我还不是专家,但是我已经开始发现在功能上比在基本算法上强制推理更容易(而且我很难回到我必须去的地方).
然而,当前FP看起来平坦的一个领域是GUI编程.Haskell方法似乎只是包装命令式GUI工具包(例如GTK +或wxWidgets)并使用"do"块来模拟命令式样式.我没有使用过F#,但我的理解是它使用OOP和.NET类做了类似的事情.显然,有一个很好的理由 - 当前的GUI编程完全是关于IO和副作用的,所以对于大多数当前的框架来说,纯函数式编程是不可能的.
我的问题是,是否可以使用GUI编程的功能方法?我无法想象在实践中这会是什么样子.有没有人知道任何尝试此类事物的框架(实验或其他)(或者甚至是为功能语言设计的任何框架)?或者只是使用混合方法的解决方案,其中OOP用于GUI部件,FP用于逻辑?(我只是想出于好奇心 - 我很想认为FP是"未来",但GUI编程似乎是一个非常大的漏洞.)
几年来我一直是一位势在必行的开发人员,我从未有过学习函数式编程的冲动.
几个月前,我终于决定学习Haskell.这是一个非常酷的语言,但我很困惑如何用这种语言编写一个事件驱动的真实应用程序.你知道一个关于它的好教程吗?
注意:当我说"真正的应用程序"时,我不是在谈论现实世界,生产就绪应用程序.我只是说一个小样本应用程序,只是为了掌握它.我觉得像windows caculator的简化版本会很棒,然后可能会更复杂一点.
我已经做了几年的面向对象编程,而且我没有做太多的函数式编程.我对飞行模拟器感兴趣,并对Lisp的函数编程方面感到好奇.飞行模拟器或任何其他真实世界的模拟器在面向对象的范例中对我有意义.
这是我的问题:
面向对象是表示真实世界模拟域的最佳方式吗?
我知道Common Lisp有CLOS(OO for lisp),但我的问题是关于用函数式语言编写飞行模拟器.因此,如果您要在Lisp中编写它,您会选择使用CLOS还是以函数方式编写它?
有没有人对使用lisp或任何功能语言编写飞行模拟器进行编码?
更新11/8/12 - 对于那些感兴趣的人来说类似的问题 - > 函数式编程如何应用于模拟?