Haskell 学习笔记
1.缘起
看王巍等人翻译的书,《函数式Swift》中提到函数式编程语言Haskell,以前也研究过一段时间FP,激起好奇欲,果断入坑。
17年大概花了2~3周,18年年初实在不甘心就这么遗忘雪藏,大概花了3~4周重新看资料,算是入门了吧。。。
2.简介
Haskell 强类型的;静态;自动推导
3.基本语法
函数基本语法
守卫
4.小结
- Haskell的资料建议至少2~3份对照着看,只看一个的话,遇到难理解的概念,容易从入门到放弃
- 也许学习一门语言应该以多用为主,至少基本的练习是必备的,推荐个网站 https://www.codewars.com/ ,基本上常见的语言都有,多做几个题目夯实一下基础还是蛮重要的,只是简单的看,不动手,基本上算是白看
-
Freenode IRC 上的 #Haskell 还是蛮火的,Mac上客户端Textual 还算能用
-
Haskell的整个类型系统,只能用完美来表达对其设计者的敬意,毕竟是花了10来年才设计完善的语言,给人的感觉就是整体感,每个细节都是统一的,因为工作的原因,看了几天JS教程,唉,放过我吧。。。到处都是例外。。。,我想对了解Swift的哥们,Haskell的类型系统会让你有种似曾相识的感觉
-
Haskell的wiki做的让人眼前一亮,本地文档很全,集成第三方库的时候,自动更新导入新的文档,牛逼
-
测试库,QuickCheck,眼前一亮,还有 搜索引擎 https://www.haskell.org/hoogle/
-
看看Haskell的Maybe类型也许会对理解Swift的可选类型有很大帮助,看看Haskell的函数的表达方式一定会对Swift 中参数柯里化理解有帮助, 独有的List Comprehension, 抱歉,不知道怎么翻译,几乎是数学表达式一样简介,好吧,把几乎两字去掉
-
好处/高级的地方无处不在,说说不开心的地方吧,类型太严格了,对刚入门的来说,处理个浮点数加减乘除,真心要好几个小时,就像很多人的说法一样,Haskell的唯一价值就是用来影响其他的新发明的编程语言,虽然很美,但是在现代商业社会,应用软件对于语言的要求颗粒度比较大,举个例子,大家做开发就像在卖猪肉,Haskell就像是手术刀,有一种说法是只要运行起来的Haskell程序,出bug的概率很小,的确是精度很高,但是你不会真用手术刀去切猪肉,应用场景有点缺乏,但是的确是好东西
- 这里只提了一些表面的东西,FP还只字未提,你值得拥有,学习一下,可以加深对Swift 和 RxSwift对认识
5.参考资料
Haskell 趣学指南(下面的链接访问速度还行,只是图片的排版有点问题)
https://www.ctolib.com/docs-haskell-guide-c-input-and-output.html
Real World Haskell 中文版 (不用多说,感谢其维护人员,这是我见过翻译及修正最好的译本,Swift的文档翻译,只能用“唉”来表达了)
维基百科
https://zh.wikibooks.org/wiki/Haskell
Functor、Applicative 和 Monad 这几个概念真的够抽象
http://blog.leichunfeng.com/blog/2015/11/08/functor-applicative-and-monad/