【发布时间】:2012-04-09 13:22:50
【问题描述】:
我正在学习 Haskell for great good。
我很喜欢 OOP 和各种类型的系统。我使用 Java 开发 webapps(Java EE、spring、Hibernate、struts 1.x),现在我经常使用 Python(pylons、django、sqlalchemy、pymongo)和 Javascript。我的个人生产力有了很大的提高:轻量级的方法、鸭式打字、很棒的迭代器、作为一等公民的功能、简单的语法和配置、pip 和 distribute 等快速工具(以及更多)帮助了我很多.
但我提高工作效率的第一个原因是Python 语言本身。
使用 Haskell 进行 Web 开发的主要好处是什么? 例如,它的类型推断如何真正改进我的 Web 应用程序?到目前为止,我注意到当你用类型签名装饰你的函数时,你正在为你的程序添加很多语义。我希望所有这些努力都会以某种方式回来,以节省许多代码行并使其正常运行。我真的很喜欢类型和数据之间的明显区别,我开始了解它们是如何工作的,但我想要一些东西:P
不要误会我的意思,我刚开始学习 Haskell,所以 Maybe 我错过了一些很棒的东西,但我真的很想了解它的范例以及何时值得使用它。
【问题讨论】:
-
你可能不了解它的工作原理的三分之二(我当然不明白),但是 Yesod Web 框架使用类型非常好。
-
@delnan Yesod(和this fragment)看起来是一个好的开始,谢谢。
-
这可能与如何获得好处没有直接关系,但这是使用 Haskell 进行 web 应用程序开发的一个示例 - @987654323 @
-
我有点困惑:类型推断意味着通常(90+% 的时间)您不需要编写类型签名。但是您说您“想要一些东西”,因为您必须将类型签名附加到所有内容(您不需要这样做)。
-
也许我比你更困惑@amindfv :) 好吧,类型推断使我免于编写类型签名,但这是一个 internal (即语言本身)益处。但是外部的好处呢? @delnan 指出 Yesod,它可以保护我们的 webapp 免受恶意字符串(
URL类型的字符串不能有空格或“
标签: haskell