本人在使用过程中,会整理出haskell的学习资料,以便大家更好的学习。 欢迎大家fork并提交PR!
- [新手入门-兴趣] Learn You a Haskell for Great Good! A Beginner’s Guide
此书过于基础,适合函数式概念入门,不具备工程开发能力,适合haskell零基础爱好者兴趣培养
- [新手入门-进阶] Haskell Programming from first principle
此书把简单的东西讲得太细致,能提供较好的haskell基础知识, 适合haskell专业开发者入门指引
- [基础开发] Real World Haskell [http://book.realworldhaskell.org/read/]
此书具备一定难度,且知识面较为全面,适合具有haskell基础的人员深入理解学习
- [专业技能] parallel and concurrency programming in haskell
此书由haskell核心库高并发专家编写,知识体系非常完整,讲解得深入浅出
- haskell培训教程
- Applied Haskell https://haskell.fpcomplete.com/syllabus
- Monad连接器:
- CSP技术
- 类型系统:
- TypeClass :
- Template Haskell
- 博客: https://markkarpov.com/tutorial/th.html
- 博客: https://wiki.haskell.org/Template_Haskell
- 库源码学习: [persistent, aeson, lens]
- FRP技术
- 实时流技术Conduit
- 复合解析技术parsec
- 高并发STM
- 全栈开发[servant+reflex]
- web开发系列
- servant + persistent: [https://www.parsonsmatt.org/2016/07/08/servant-persistent_updated.html]
- 静态构建
- static-haskell-nix: https://vaibhavsagar.com/blog/2018/01/03/static-haskell-nix/
- GHC底层知识
- emacs dante :> [nix + cabal] <> [obelisk]
- emacs dante [https://github.com/jyp/dante]
- nix + cabal 配置 [https://github.com/Gabriel439/haskell-nix]
- obelisk [https://github.com/obsidiansystems/obelisk]
- static linking
- static-haskell-nix [https://github.com/nh2/static-haskell-nix]
- C FFI [https://github.com/ghc/ghc]
ghc: 原生大本营, 非常好玩
- JS FFI [https://github.com/ghcjs/ghcjs]
ghcjs: 有着强大的FRP支撑, 以reflex最为知名, 大部分项目需要配合nix使用
- JVM FFI [https://github.com/eta-lang]
eta-lang: 当前不支持GHC 8, 使用NIX会比较麻烦; 对于Maybe类型的nullable object尚不支持; 使用过程中须使用progurad减少文件size,编译过程较慢; HDBC及其底层的数据库尚未完全支持,使用友好度不够
- pandoc [https://github.com/jgm/pandoc]
文档格式转换任意转换[org-mode/pdf/markdown/docx/TeX …]
- gitit2 [https://github.com/jgm/gitit2]
WIKI文档服务器: 轻松一键安装,零依赖[nix-env -f ‘<nixpkgs>’ -iA haskellPackages.gitit]
- hakyll [https://github.com/jaspervdj/hakyll]
搭建静态博客网站
facebook出品,用于大规模反垃圾邮件策略
- queryparser [https://github.com/uber/queryparser]
uber出品, 数据仓库血缘分析工具, 支持vertica|HIVE|presto
命令行模式PPT演示
- postgREST [https://github.com/PostgREST/postgrest]
非常厉害的postgresql restful api服务
nix的haskell实现版本,方便用于测试集成
- graphql-engine/server [https://github.com/hasura/graphql-engine/tree/master/server]
GraphQL on postgresql横空出世
haskell实现的区块链项目
haskell实现的配置编程语言
- haskell-webshell [https://github.com/lehins/haskell-webshell]
通用网页实现的shell终端
- matterhorn [https://github.com/matterhorn-chat/matterhorn]
Mattermost 命令行聊天工具[https://github.com/mattermost/mattermost-server]
- JSON 系列
- aeson
当前不支持非严格json解析,例如单引号或者key不含引号,可以改写低层库很方便实现
- aeson-pretty
- aeson-qq
aeson quasiquoter支持
- lens-aeson [https://github.com/lens/lens-aeson]
aeson的lens操作库
- YAML =: yaml
可以很容易与aeson集成
- CSV =: cassava
- EXCEL =: xlsx
性能强悍,大量使用lens操作
- SHELL =: optparse-applicative
行业标准的命令行参数解析库
- parsec
GHC核心自带解析器,性能较弱
- attoparsec
网络字节解析器,性能强悍,错误提示较差
- megaparsec
parsec的性能增强版本
画图工具
- staticstics [https://github.com/bos/statistics]
统计分析
- Frames [https://github.com/acowley/Frames]
类似python的pandas
矩阵计算, 类似python的numpy
- mltool [https://github.com/aligusnet/mltool]
机器学习库
机器学习[KNN]
- Tensorflow [https://github.com/tensorflow/haskell]
Tensorflow haskell绑定
- Haskell AI [https://github.com/chris-taylor/aima-haskell]
HASKELL AI代码实现: ficial Intelligence: A Modern Approach
- brick
控制台图形显示库
- reflex 及 reflex-dom
FRP核心库
- reflex-semantic
reflex UI库
- obelisk
reflex构建工具与开发框架
- 基础数据结构
- http-types
- cookie
- wai 底层WEB服务[Haskell Web Application Interface]
- wai
- wai-extra
- wai-app-static
- websockets 系列
- websockets [https://github.com/jaspervdj/websockets]
- wai-websockets [https://github.com/yesodweb/wai/tree/master/wai-websockets]
- servant 系列
- servant-server
restful服务开发, 对xml的支持需要自己添加
- servant-auth
JWT及cookie验证
- servant-client
生成后端api调用代码
- servant-reflex
生成reflex前端api调用代码
- servant-swagger
servant swagger文档库
- snap 系列
- snap-server
轻量级高性能WEB服务器
- Yesod 系列
- yesod-core
- yesod
- yesod-form
- yesod-static
- acid-state [https://github.com/acid-state/acid-state]
- haskey [https://github.com/haskell-haskey/haskey]
- amqp [https://github.com/hreinhardt/amqp]
- postgresql
- hasql
采用二进制协议, 带来野兽版的性能
- hasql-pool
resource-pool的简易封装版本
- postgresql-simple
- postgresql-websockets + pg-recorder [https://github.com/diogob/postgres-websockets]
postgresql-websockets将notify消息接口转为websocket; pg-recorder用于将websocket接口写入数据库
- mysql =: mysql-simple
- SQL Server =: tds
- oracle =: odpic-raw
oracle使用最简单的库, blob支持需要自己添加
- ORM & DSL
- persistent+Esqueleto
- groundhog [https://github.com/lykahb/groundhog]
- MIGRATION
- dbmigrations [https://github.com/jtdaugherty/dbmigrations]
- base64-bytestring
- utf8-bytestring
- jose-jwt [https://github.com/tekul/jose-jwt]
JWT TOKEN
- cryptonite
haskell业界标准加密库
- cereal [https://github.com/GaloisInc/cereal]
网络序列化库
- conduit
单机史上最强实时处理技术
- lens
多层级数据遍历组合处理库
图算法库
- QuickCheck
使用Generator自动造数,非常好用
- split
list切割工具
- hw-kafka-conduit
conduit在kafka平台上运行
- sparkle [https://github.com/tweag/sparkle]
- minio-hs
- eta-spark [https://github.com/typelead/eta-examples/tree/master/3-spark]
- tensorflow [https://github.com/tensorflow/haskell]
- 并行库系列
- parallel
快捷版本并行库
- monad-par 并行库
灵活定制版本并行库
- STM-高并发系列
系统自带并发库
- stm-hamt [https://github.com/nikita-volkov/stm-hamt]
- stm-containers [https://github.com/nikita-volkov/stm-containers]
- stm-chans
- stm-conduit
- TCache
- ACTOR-高并发系列
distribute-process
分布式并发库
- CSP-高并发系列
- network [https://github.com/haskell/network]
- FTP
- ftp-client [https://github.com/mr/ftp-client]
- SSH/SFTP
- libssh2
- HTTP/HTTPS
- http-client
- http-client-tls
- EMAIL
- hsemail [https://github.com/peti/hsemail]
- hint
动态运行时加载
- Haskell-Turtle-Library
简洁版脚本工具
- Shelly
灵活版脚本工具
- template haskell [https://github.com/ghc/ghc/tree/master/libraries/template-haskell]
- transformers <> mtl [http://hub.darcs.net/ross/transformers]
快速连接不同类型的monad世界
- async [https://github.com/simonmar/async]
- unliftio [https://github.com/fpco/unliftio]
- resource-pool <> resourcet
monad 资源管理
- monad-loops <> retry
monad 流程控制[循环<>重试]
- contravariant
- comonad
- profunctors
- bifunctor
- either
- free
- tagged
- categories
- semigroups
- semigroupoids
- rounded
- monad-coroutine
- monad-control
- primitive
- either
- bytestring
- text
- case-insensitive
- string-conv
string/bytestring/text自由转换
- scientific
- array
- vector
- containers
- unorderded-containers
- deepseq
完全strict实例化数据结构
- optparse-applicative [https://github.com/pcapriotti/optparse-applicative]
- envparse [https://github.com/tel/env-parser]
- time
- random
- Glob
- filepath
- directory
- monad-logger
- configurator [https://github.com/bos/configurator]
- cron [https://github.com/michaelxavier/cron]
- c2hs
生成c库调用绑定
- call-haskell-from-anything
任意语言调用haskell https://github.com/nh2/call-haskell-from-anything
- prometheus [https://github.com/bitnomial/prometheus]
- ekg [https://github.com/tibbe/ekg]
- ekg-statsd [https://github.com/tibbe/ekg-statsd]
- criterion + criterion-measurement
业界标准性能测试库
- QuickCheck
property-based的haskell随机测试库
- HUnit
haskell基础测试库
- hspec
- hedgehog
- tasty
一站式测试解决方案
- dependent-map
- dependent-sum
- rio