前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Haskell

作者头像
icepy
发布2019-06-24 17:57:01
8590
发布2019-06-24 17:57:01
举报
文章被收录于专栏:子曰五溪

Haskell是一种标准化的、通用纯函数式编程语言,有非限定性语义和强静态类型,在Haskell中,函数是一等公民。

这门语言在数学模型上有着很深的优势,虽然它有很多特性,让人很难接受,随着学习的深入,你才会发现这会多么有趣。

官网:https://www.haskell.org/

如果你有兴趣继续往下阅读,不妨跟我一起了解了解它。本文不是入门教程,你可以阅读官网,本文主要写一写自己的学习的感受,并且告诉你一个初步的运行环境。通过官网,你可以下载到它的运行环境,目前Haskell根据你不同的场景需求,提供了几种安装包,最小的尝试,我们可以从Minimal installers开始,你可以根据你的操作系统平台来选择下载Core还是Full。这两种安装包,都包含了ghc。

ghc包含了三个主最要的部分:

  • ghc 编译器
  • ghci 交互式解析器和调试器
  • runghc 以脚本的方式运行Haskell

而我们即将学习的起点就是在ghci中来练习Haskell的基本语法。

在终端输入ghci进入交互式界面:

Prelude> 1+(-1) = 0

据说“命令式属于工程师”,“函数式属于科学家”,这门语言还有哲学层面的东西。如果能深入下去,感觉数学能力可以爆+的感受。是的,Haskell能让你体验到“非同一般”。刚入门时,我个人的感受觉得真不难,看上去很愉悦完成了入门测验,可是接下来才发现自己知道的越少,越暴露更多愚蠢的感觉。Haskell每一个函数都非常颗粒度,来解决很小的问题,如果我们无法理解这种很小的颗粒度,根本很难从小组合到强大的处理流程。是的,这就是Haskell。

学习Haskell本来的目的是想研究一个区块链项目,已经囤了3000个,感觉入场还是有晚了,平均下来0.7美金收的,但是话又说回来,不自己研究,光看市面上的技术分析帖子,心里多少有点没底。既然看好,就准备长期持有了。如果你没有听说过Cardano项目,不妨也试着去了解一番,https://www.youtube.com/watch?v=Ja9D0kpksxw (创办者Charles Hoskinson的白板解说,自备访问外国网站。)当然,它的开发进度还并没有很好的完善(https://cardanoroadmap.com/),同样的你可以审计(https://github.com/input-output-hk/cardano-sl)仓库里的代码。这个项目,有趣的地方在于很多审计需要符合科学与哲学,它要解决的问题很像是比特币+以太坊,很有意思的是它通过民主投票的方式来解决分歧,我很喜欢这个特性,我们持有的Cardano代币,就能让我们进行投票,并且这不是损耗Cardano代币。

(注明:本文不是投资建议,仅仅是从Haskell引发出来的Cardano项目

是的,Cardano就是用Haskell来编写的,(我这样的渣渣也仅仅是阅读和学习)Haskell的用户大部分都是教授或者是数学领域的牛人,这也奠定了Cardano项目的背景。

回归语言Haskell,函数式的编程其实有一点上,大家都很清楚,用很少的代码来完成一件事情。Haskell还可以定义跟数学的过程一一对应,这就很有意思了。我们知道计算机学科其实也是一门数学学科,你想想,能跟数学的过程一一对应的语言,在研究领域,得多牛逼。

Haskell有模块,也有高阶函数,同样的也有.操作符,更多的时候你要弄明白的是很多设计的哲学,带着Why,How去学习这门语言。比如Haskell里的条件控制流程,if then else 里的else是强制要求的,Why?因为它一定必须要有返回值,属于expression。这种命令式的语言,有时候也很容易让很困惑。比如add::Int -> Int -> Int,其实这翻译成我们能看懂的函数就是int (*add)(int,int) ,函数add会返回一个int类型。

我觉得,我这小小门入,就不耽误大家了,如果大家有兴趣,一定可以从(http://learnyouahaskell.com/)Haskell官方指定的在线图书中找到属于自己的乐趣。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 子曰五溪 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档