Haskell :: 带类型的函数式编程

计算机科学 > 编程 > Haskell

Haskell是一种函数式编程语言。如果学过编程,并想了解Haskell如何工作以及和其它编程语言有何不同,你可以看一下概述

Haskell有两大特点。第一,它是纯函数性的。如果一个函数在不同的环境下以相同的参数调用两次,那么这两次的返回值是完全相同的。第二,Haskell提供了一个结合了诸如类型类(typeclasses)和泛代数数据类型(generalized algebraic data types)等特征的非常现代化的类型系统。现在你并不需要了解以上术语的含义,但我们非常希望你看完本书后能融会贯通。那么,为何Haskell用户喜爱这种语言?仅仅是因为它的独特和先进吗?不,是因为它的纯函数性能让Haskell程序员更好地理解程序,从而保证程序正确无误。尤其是在一个先进的类型系统的帮助下,我们能够发现更多的错误,无论是简单的还是复杂的。

本书将向你介绍Haskell语言的最基础的知识和大多数的高级特性,同时也包含计算机编程的通用技能。对于有经验的程序员,我们力荐你耐心的看完这些。很可能,你最熟悉的编程语言和Haskell有极大的不同,对这些语言的了解让你更加难以理解Haskell的工作方式:简单而又与众不同。那么,把这当作一次在异世界的冒险,以数学的眼光来看待编程吧!

概述

本书分为三部分:初学、进阶和实践。最后一部分涵盖了更多日常运用Haskell时的问题,只要有初学者的知识就可以看了。

请作出贡献!无论Haskell技术如何,每个人都可以帮忙。花费五分钟改进一个模块可以节省他人数小时的时间。详情见贡献者须知

入门教程

这部分介绍了最基础的内容和一些最常用的库。然后你就可以写一些简单的程序,并为更进一步做好了准备。

绝大多数章节都包含练习,通过这些练习你能学会Haskell最新的特性。在每一章的结尾都有练习答案的链接,你可以对照答案检查自己的解答是否正确。

Haskell基础

初级Haskell

Haskell进阶

  • 模块
  • 缩进
  • 更多数据类型
  • 类的声明
  • 类与类型
  • 保持状态记录

Monads

高级教程

这一部分将介绍更多函数式编程的概念,例如数据结构和类型理论,也将涵盖更多像并行计算这样的实用主题。

高级Haskell

类型的乐趣

  • 多形性基础
  • 存在性类型
  • 高级类型类
  • 幻影类型
  • 通用代数数据类型
  • 数据类型代数学

理论提升

  • 指称语义
  • Equational reasoning
  • Program derivation
  • Category theory
  • The Curry-Howard isomorphism
  • fix 和递归

Haskell性能

  • Introduction
  • Step by Step Examples
  • Graph reduction
  • Laziness
  • Strictness
  • Algorithm complexity
  • Data structures
  • Parallelism

Haskell实务

这部分涵盖了更多日常运用Haskell时遇到的问题,如使用标准库,创建图形界面或使用数据库。你可以直接从基本阶段跳到这里阅读。

程序库参考

  • The Hierarchical Libraries
    • Lists - Arrays - Maybe - Maps
    • IO - Random Numbers

普通实务

  • 构建一个独立的应用
  • 除错
  • 测试
  • 打包你的程序
  • 使用外部程序接口

专门任务

  • 图形用户界面
  • 数据库
  • 网络编程
  • 使用XML
  • 使用正则表达式

附录

习题解答
语法糖
作者及致谢
贡献者须知
任务列表
这本Haskell维基书使用的模板

其他教程

附加资源

This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.