- Haskell 教程
- Haskell - 首页
- Haskell - 概述
- Haskell - 环境设置
- Haskell - 基本数据模型
- Haskell - 基本运算符
- Haskell - 决策
- Haskell - 类型和类型类
- Haskell - 函数
- Haskell - 函数进阶
- Haskell - 函数组合
- Haskell - 模块
- Haskell - 输入与输出
- Haskell - Functor (函子)
- Haskell - Monad (单子)
- Haskell - Zipper (拉链)
- Haskell 有用资源
- Haskell - 快速指南
- Haskell - 有用资源
- Haskell - 讨论
Haskell - 概述
Haskell 是一种函数式编程语言,专门设计用于处理符号计算和列表处理应用程序。函数式编程基于数学函数。除了 Haskell 之外,其他一些遵循函数式编程范式的流行语言包括:Lisp、Python、Erlang、Racket、F#、Clojure 等。
在传统编程中,指令被视为以特定语法或格式的一组声明,但在函数式编程中,所有计算都被视为单独数学函数的组合。
用 Haskell 进行函数式编程
Haskell 是一种广泛使用的纯函数式语言。这里,我们列出了一些使 Haskell 比其他传统编程语言(如 Java、C、C++、PHP 等)更特殊的几个方面。
函数式语言 - 在传统编程语言中,我们指示编译器执行一系列任务,这无非是告诉你的计算机“做什么”和“如何做”。但在 Haskell 中,我们将告诉计算机“它是什么”。
惰性求值 - Haskell 是一种惰性语言。所谓惰性,是指 Haskell 不会无缘无故地计算任何表达式。当求值引擎发现需要计算某个表达式时,它会创建一个thunk 数据结构来收集该特定求值所需的所有信息以及指向该thunk 数据结构的指针。只有当需要计算该特定表达式时,求值引擎才会开始工作。
模块化 - Haskell 应用程序只是一系列函数。可以说,Haskell 应用程序是许多小型 Haskell 应用程序的集合。
静态类型 - 在传统编程语言中,我们需要定义一系列变量及其类型。相反,Haskell 是一种类型推断语言。所谓类型推断语言,是指 Haskell 编译器足够智能,可以推断出声明的变量的类型,因此我们不需要显式提及所用变量的类型。
可维护性 - Haskell 应用程序是模块化的,因此维护它们非常容易且经济高效。
函数式程序更具有并发性,并且它们遵循并行执行以提供更准确和更好的性能。Haskell 也不例外;它已被开发成可以有效地处理多线程。
Hello World
这是一个简单的例子,用于演示 Haskell 的动态性。请看下面的代码。我们只需要一行代码就可以在控制台上打印“Hello World”。
main = putStrLn "Hello World"
一旦 Haskell 编译器遇到上述代码,它就会立即产生以下输出:
Hello World
在本教程中,我们将提供大量示例来展示 Haskell 的强大功能和简洁性。