Haskell 技能图谱

优质
小牛编辑
133浏览
2023-12-01

Haskell语言编程基础

  • 类型 (type)
  • 函数 (function)
  • 类型类 (type class)
  • Prelude中的类型与函数的使用

Haskell语言初级部分

  • 递归 (recursion)
  • 列表内包 (list comprehension)
  • 高阶函数 (higher order function)
  • 定义类型 (define types)
  • 定义类型类 (define type class)

Haskell语言中级部分

  • 使用Monad
  • 使用IO Monad
  • 使用State, Writer, Reader Monad
  • 使用Monad转换器 (monad transformer)
  • 使用更多的Monad
  • 使用Monad, 再使用Monad ...
  • MonadIO, MonadBase ...
  • 使用Monad与Monad转换器管理代码

Haskell进阶部分

类型系统

  • 类型系统 (type system)
  • 类型推断 (type inference)
  • Kind推断 (kind inference)
  • 多态Kind (kind polymorphism)
  • 可类型化 (typeable)
  • 单一同态限定 (monomorphism restriction)
  • 类型家族 (type family)

通用编程

  • 代数数据类型通用编程 (algebric data type generic)
  • 摒弃模板化代码 (Scrap you boilerplate (SYB))

元编程

  • 模板元编程 (meta template programming)
  • 准引用 (quasi quotes)

在工程中使用Haskell

并行、并发还有异步

  • 确定性并发
  • 微线程
  • Semarphore
  • 软件事务内存 (software transactional memory)
  • 通信顺序式进程 (communicating sequential process)
  • 分布式编程 (distributed programming)

外部函数接口

数据库

前端

网络库

测试

正确性测试

  • 单元测试 (unit test)
  • 随机测试 (QuickCheck)
  • 穷举测试
  • 反例搜寻测试
  • 完全性测试
  • SMT精化类型

性能测试

  • criterion库
  • threadscope的使用

Haskell理论部分

  • Arrow
  • 函数反应式编程
  • Haskell的依赖类型
  • 编程语言原理
  • 范畴论 (category theory)