Haskell教程:#2 概览

By George Z. August 2, 2021

概览

Haskell 是一种函数式编程语言,专门设计用于处理符号计算和列表处理应用程序。 函数式编程基于数学函数。 除了 Haskell,其他一些遵循函数式编程范式的流行语言包括:Lisp、Python、Erlang、Racket、F#、Clojure 等。在传统的编程中,指令被视为一组特定语法或格式的声明,但在函数式编程的情况下,所有的计算都被视为单独的数学函数的组合。

使用 Haskell 实现功能性

Haskell 是一种广泛使用的纯函数式语言。在这里,我们列出了使这种语言相对于其他传统编程语言(如 Java、C、C++、PHP 等)如此特别的几点。

  • 函数式语言 - 在传统的编程语言中,我们指示编译器执行一系列任务,这些任务只不过是告诉您的计算机“要做什么”和“如何做?”但是在 Haskell 中,我们会告诉我们的计算机“它是什么?”
  • 懒惰 - Haskell 是一种懒惰的语言。懒惰是指 Haskell 不会无缘无故地评估任何表达式。当求值引擎发现表达式需要求值时,它会创建一个 thunk 数据结构来收集该特定求值所需的所有信息以及指向该 thunk 数据结构的指针。仅当需要评估该特定表达式时,评估引擎才会开始工作。
  • 模块化 - Haskell 应用程序只不过是一系列功能。我们可以说一个 Haskell 应用程序是众多小型 Haskell 应用程序的集合。
  • 静态类型 - 在传统的编程语言中,我们需要定义一系列变量及其类型。相比之下,Haskell 是一种严格类型的语言。通过术语严格类型语言,我们的意思是 Haskell 编译器足够智能,可以确定声明的变量的类型,因此我们不需要明确提及所使用的变量的类型。
  • 可维护性 - Haskell 应用程序是模块化的,因此维护它们非常容易且具有成本效益。 函数式程序更加并发,并且它们在执行中遵循并行性以提供更准确和更好的性能。 Haskell 也不例外。它的开发方式可以有效处理多线程。

Hello World

It is a simple example to demonstrate the dynamism of Haskell. Take a look at the following code. All that we need is just one line to print “Hello Word” on the console. Live Demo (https://www.tutorialspoint.com/compile_haskell_online.php)

main = putStrLn "Hello World"

一旦 Haskell 编译器遇到上面这段代码,它会立即产生以下内容

Hello World

我们将在本教程中提供大量示例来展示 Haskell 的强大功能和简单性。

comments powered by Disqus