真实世界的Haskell编程
多年来一直是一个必要的开发人员,我从来没有学过函数式编程的冲动。
几个月前我终于决定学习Haskell。 这是一种非常酷的语言,但我对于如何以这种语言编写事件驱动真实应用程序感到困惑。 你知道一个关于它的好教程吗?
注意:当我说“真正的应用程序”时,我并不是在谈论现实世界,生产就绪应用程序。 我只是指一个小样本应用程序,只是为了掌握它。 我认为像Windows caculator的简化版本会很棒,然后可能会更复杂一些。
当你说“真实世界”的例子时,你可能会想到问题本质上是顺序的或有状态的,或者做了很多I / O,对吗?
那么,游戏呢?
或者,X Window Manager,可扩展的Emacs克隆文本编辑器或IDE呢?
然后,有这本书,甚至有你的问题已经在标题:真实世界Haskell,并且也是免费的!
你可能想要看的另一件事是功能反应式编程。 (例如,它在Frag中使用。)关于FRP的一个有趣的事情是它允许您从一个非常不同的角度来看待GUI编程的问题。 如果您阅读RWH手册中的GUI一章,您将会看到它谈到了如何像C一样编写GUI应用程序,只有更好。 FRP OTOH允许你以完全不同的方式写出它,而这在C中是不可能的。
当有人说“但现实世界中可以使用Haskell”时,很多时候(我不是说你的问题就是这种情况,但它是反复出现的模式),他们真正说的是“我知道如何在C语言和Haskell中做到这一点,我不能以完全相同的方式来做到这一点,因此Haskell一定是不可能的,因此Haskell还没有为现实世界做好准备。“ 但他们错过的是,可能有一个完全不同的,更好的方法来解决这个问题。 (这就像是说“Erlang没有线程,因此它不可能被用来实现并发系统。”)而FRP只是一个例子。
对于今天的闪电讨论,我已经汇总了这个Haskell应用程序列表,故意排除任何仅针对程序员的内容:
(还在我的博客和演讲的幻灯片上,以及每个节目的优秀代表性图片。)
xmonad是事件驱动的(字面上)。 它有一个监听器循环,唤醒事件,修改X服务器的内部状态,然后渲染到屏幕上。
http://xmonad.org
链接地址: http://www.djcxy.com/p/42937.html上一篇: Real world Haskell programming
下一篇: What does the exclamation mark mean in a Haskell declaration?