本文目录
haskell maybe怎么用
Maybe的定义是data Maybe a = Just a | Nothing. 其中Just和Nothing是构造器, a属于任意合法类型。Nothing多用于表示错误信息。比如这个函数x除以y:div :: Float -》 Float -》 Maybe Floatdiv x y = if (abs y 《 0.00001) then Just (x/y) else Nothing--abs y 《 0.00001表示y接近0在这段程序,如果y接近0,除法结果会是Nothing。如果是div 2.6 2,结果是Just 1.3。在取出Maybe的Just数据时,你可以用pattern matching(我不确定如何翻译,意思大致是类型结果匹配)取出数据。如果你学过monad,用return写maybe会更加容易。
Haskell是开发web应用的好选择吗
Haskell和SQL 不幸的是, Haskell还没有一种成熟的方法可以同关系数据库以一种类型安全方式进行交互. 你必须建立你自己的SQL 命令作为字符串, 就想其它大多数语言那眼. HDBC可以很小心地阻止SQL注入攻击. 我使用templatepg来在编译时inference来检查语法,参数, 返回申明的类型. Monads 有哪篇关于Haskell的文章会不提到monads呢.? 我还不能完全理解它. 但我还是能写一些有用的程序.所以,如果你也不理解monads, 也不会阻止你写一些正式的代码. HTML Combinators 我喜欢HTML combinators 使用模板,你失去很多抽象的能力. 一个优秀的例子是Haskell formlets库 异步Javascript(AJAX) 如果你直到如何手写JavaScript代码, 用Haskell来建立动态网页跟PHP没有什么分别. 调试 缺少传统的调试器是一个主要的缺点. 我必须用几个trace句子, 这同那些命令语言中使用的方法没有什么分别. 部署 使用一个简单的SCGI程序,部署非常简单 同步源代码到产品服务器,然后在那里编译它 在编译好代码后, strip一下, 会减少二进制文件的体积
为什么业界很少使用 Haskell
因为Haskell缺乏对应的开发拓展工具包。另外,Haskell属于函数式编程语言,语法对于很多人来说晦涩难懂,特别是functor,monad,applicative,arrows之类的编程思维。不过我在美国刚刚上完一个函数式编程的课,对于haskell还是比较喜欢的。
用sublime text 3编译haskell
使用Haskell,感觉自己就像个匠人,在打造武器的时候,不断给武器添加各种槽,最后往槽里镶嵌各种提升武器威力的宝石,一把威力无比的武器即告完成……一般要尝试一种新语言,我都习惯先把开发环境打造得舒舒服服的。当然Emacs是函数式编程者的最爱,但是,我已经用Sublime Text 2配置了好几种语言的开发环境了,因此,这次依旧选择Sublime Text 2来配置Haskell的开发环境。环境:Windows 7。Windows 8应该也一样吧,改天试试看。