Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions data/map-DevLang-Haskell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Haskell 技能图谱

## 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)