Skip to content

Latest commit

 

History

History
531 lines (488 loc) · 16.9 KB

README.org

File metadata and controls

531 lines (488 loc) · 16.9 KB

HASKELL 最佳实践

本人在使用过程中,会整理出haskell的学习资料,以便大家更好的学习。 欢迎大家fork并提交PR!

HASKELL :> 电子书

  • [新手入门-兴趣] Learn You a Haskell for Great Good! A Beginner’s Guide

此书过于基础,适合函数式概念入门,不具备工程开发能力,适合haskell零基础爱好者兴趣培养

  • [新手入门-进阶] Haskell Programming from first principle

此书把简单的东西讲得太细致,能提供较好的haskell基础知识, 适合haskell专业开发者入门指引

此书具备一定难度,且知识面较为全面,适合具有haskell基础的人员深入理解学习

  • [专业技能] parallel and concurrency programming in haskell

此书由haskell核心库高并发专家编写,知识体系非常完整,讲解得深入浅出

HASKELL :> 技术文章

HASKELL :> 开发工具

HASKELL :> 全栈开发

ghc: 原生大本营, 非常好玩

ghcjs: 有着强大的FRP支撑, 以reflex最为知名, 大部分项目需要配合nix使用

eta-lang: 当前不支持GHC 8, 使用NIX会比较麻烦; 对于Maybe类型的nullable object尚不支持; 使用过程中须使用progurad减少文件size,编译过程较慢; HDBC及其底层的数据库尚未完全支持,使用友好度不够

HASKELL :> 知名工具

文档格式转换任意转换[org-mode/pdf/markdown/docx/TeX …]

WIKI文档服务器: 轻松一键安装,零依赖[nix-env -f ‘<nixpkgs>’ -iA haskellPackages.gitit]

搭建静态博客网站

facebook出品,用于大规模反垃圾邮件策略

uber出品, 数据仓库血缘分析工具, 支持vertica|HIVE|presto

命令行模式PPT演示

非常厉害的postgresql restful api服务

nix的haskell实现版本,方便用于测试集成

GraphQL on postgresql横空出世

haskell实现的区块链项目

haskell实现的配置编程语言

通用网页实现的shell终端

Mattermost 命令行聊天工具[https://github.com/mattermost/mattermost-server]

HASKELL :> 数据格式解析

  • JSON 系列
    • aeson

    当前不支持非严格json解析,例如单引号或者key不含引号,可以改写低层库很方便实现

    • aeson-pretty
    • aeson-qq

    aeson quasiquoter支持

    aeson的lens操作库

  • YAML =: yaml

可以很容易与aeson集成

  • CSV =: cassava
  • EXCEL =: xlsx

性能强悍,大量使用lens操作

  • SHELL =: optparse-applicative

行业标准的命令行参数解析库

HASKELL :> 通用格式解析器

  • parsec

GHC核心自带解析器,性能较弱

  • attoparsec

网络字节解析器,性能强悍,错误提示较差

  • megaparsec

parsec的性能增强版本

HASKELL :> 数据分析

画图工具

统计分析

类似python的pandas

矩阵计算, 类似python的numpy

机器学习库

机器学习[KNN]

Tensorflow haskell绑定

HASKELL AI代码实现: ficial Intelligence: A Modern Approach

HASKELL :> 命令行开发

  • brick

控制台图形显示库

HASKELL :> 前端开发

  • reflex 及 reflex-dom

FRP核心库

  • reflex-semantic

reflex UI库

  • obelisk

reflex构建工具与开发框架

HASKELL :> WEB开发框架

  • 基础数据结构
    • http-types
    • cookie
  • wai 底层WEB服务[Haskell Web Application Interface]
    • wai
    • wai-extra
    • wai-app-static
  • 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

HASKELL :> 数据访问层

oracle使用最简单的库, blob支持需要自己添加

HASKELL :> 字节编码库

JWT TOKEN

  • cryptonite

haskell业界标准加密库

网络序列化库

HASKELL :> 数据处理框架

  • conduit

单机史上最强实时处理技术

  • lens

多层级数据遍历组合处理库

图算法库

  • QuickCheck

使用Generator自动造数,非常好用

  • split

list切割工具

HASKELL :> 大数据处理技术

  • hw-kafka-conduit

conduit在kafka平台上运行

HASKELL :> 高并行并发框架

HASKELL :> 网络传输工具

HASKELL :> 运行时动态加载

  • hint

动态运行时加载

HASKELL :> 脚本工具

  • Haskell-Turtle-Library

简洁版脚本工具

  • Shelly

灵活版脚本工具

HASKELL :> 杀手级技能

HASKELL :> 通用monad工具库

快速连接不同类型的monad世界

monad 资源管理

  • monad-loops <> retry

monad 流程控制[循环<>重试]

  • contravariant
  • comonad
  • profunctors
  • bifunctor
  • either
  • free
  • tagged
  • categories
  • semigroups
  • semigroupoids
  • rounded
  • monad-coroutine
  • monad-control
  • primitive

HASKELL :> 基础数据结构

  • either
  • bytestring
  • text
  • case-insensitive
  • string-conv

string/bytestring/text自由转换

  • scientific
  • array
  • vector
  • containers
  • unorderded-containers
  • deepseq

完全strict实例化数据结构

HASKELL :> 系统工具库

HASKELL :> 底层开发

  • c2hs

生成c库调用绑定

  • call-haskell-from-anything

任意语言调用haskell https://github.com/nh2/call-haskell-from-anything

HASKELL :> 监控利器

HASKELL :> 测试库

  • criterion + criterion-measurement

业界标准性能测试库

  • QuickCheck

property-based的haskell随机测试库

  • HUnit

haskell基础测试库

  • hspec
  • hedgehog
  • tasty

一站式测试解决方案

HASKELL :> 其它常用库[待整理]

  • dependent-map
  • dependent-sum
  • rio