素材阁

Haskell 速查

共 26 条 Haskell 基础语法、类型与工具链,涵盖基础语法、类型与数据、模式匹配与高阶函数、函子与单子、工具链。 支持搜索与分类筛选,点击即可复制。

基础语法

纯函数式语言。

命令说明
函数定义(无括号调用:double 3)
类型签名(推荐写在定义上方)
let 绑定
条件表达式
case 表达式

类型与数据

静态类型,编译期推断。

命令说明
代数数据类型(ADT)
类型别名
零开销包装类型
自动派生常用类型类
内置可选值与错误类型
定义类型类(接口)

模式匹配与高阶

函数式核心工具。

命令说明
模式匹配 + 递归
守卫(guard)
map 与 filter
折叠
函数组合与 apply 运算符
惰性列表操作

函子与单子

IO 与容器抽象。

命令说明
IO 动作(程序入口)
从 IO 取出值(do 语法)
绑定运算符 >>=
Functor / Applicative
列表单子(笛卡尔组合)

工具链

编译与交互。

命令说明
交互式解释器(:l 加载文件,:t 查看类型,:q 退出)
编译为可执行文件
Cabal 项目管理
Stack 项目管理

使用说明

Haskell 速查:基础语法、类型与数据、模式匹配与高阶函数、函子与单子、工具链;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:基础语法、类型与数据、模式匹配与高阶、函子与单子、工具链。
  2. 点「命令」列复制到源文件或 ghci。
  3. ghci 里用 :t 看类型、:l 加载文件、:q 退出。
  4. 函数式思维:尽量用 map/filter/fold 替代循环。

常见问题

类型签名是必须的吗?
不是必须,编译器可推断;但写上签名更清晰,也是良好实践。
cabal 和 stack 怎么选?
两者都是项目管理工具,cabal 更贴近官方生态,stack 提供更固定的版本快照;任选其一即可。
需要联网吗?
不需要,本地可用。

延伸阅读

相关工具