简介
Elm 是一门专注于Web前端的纯函数式语言。你可能没听说过它,但一定听说过Redux,而Redux的核心reducer就是受到了Elm的启发。
随着整个React社区往函数式方向发展,Elm作为前端函数式编程的先驱和风向标,毫无疑问是值得去学习和借鉴的。
如果你打算开始函数式编程,与其阅读零碎的文章试图弄明白那些晦涩的Monad/Functor们,动手写点熟悉的东西也许是更好的方式。接下我会以常见的Counter/CounterList为例,一步步地带你了解如何使用Elm构建应用。
由于内容较多,计划分四篇,大致内容分布如下:
基础篇:Elm介绍、基础。使用在线编辑器实现Counter
类型篇:Elm的类型系统
进阶篇:本地工程的搭建,在本地实现Counter List
完结篇:处理副作用,Elm与Redux对比
下载和准备
本文的内容都基于官网提供的在线编辑器,可以稍后再配置本地环境
你可以在官网下载安装包,作为前端开发者,从NPM下载也是很好的选择,个人推荐后者
在安装成功后,打开命令行输入elm,会看到版本和帮助信息。
有用的学习资料
官网提供了文档 和大量的examples ,然而个人一直不太喜欢Elm的一点就是官方文档,无论是组织的合理性还是完整性都有所欠缺,即使是像Syntax这样务求全面的地方,也有很多遗漏的知识点,在无形中增加了初学者的学习成本。
本文接下来会尽量讲解涉及到的知识点,如果遇到困难,除了官网外,以下两个链接也是不错的补充:
Learn X in Y minutes:可以看成是对官网Syntax 的补充,不仅覆盖了一些官网忽略的点,很多解释也更加详细
Elm for JS:针对Javascript开发者的常见疑点解答,学习过程中有理解不了的地方不妨看看。
Hello world
按照套路,现在是Hello world