作者:神秘的sy0001 | 来源:互联网 | 2023-07-28 11:54
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Haskell代码编程相关的知识,希望对你有一定的参考价值。
Haskell(发音为 /ˈhæskəl/) 是一种标准化的,通用纯函数式编程语言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家Haskell Brooks Curry,他在数学逻辑方面的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是一等公民”。作为函数式编程语言,主要控制结构是函数。
Haskell支持惰性求值、模式匹配、列表内包、类型类和类型多态。它是一门纯函数式语言,这意味着大体上,Haskell中的函数没有副作用。存在一个明确的类型表达副作用,与函数类型正交。一个纯函数可以返回后续执行的副作用、模块化其它语言的非纯函数。
Haskell拥有一个强、静态类型系统。Haskell在此领域的主要改革就是加入了类型类(type classes),原本设想作为重载的主要方式,在之后发现了更多用途。
用于表达边际效应的类型是monad的一个例子。Monad是一个通用框架,可以建模不同种类的计算。包括错误捕捉、非确定性计算、解析以及软件交互内存。Monad用普通数据类型定义,Haskell也为其提供了几种语法糖。
Haskell是现有的一门开放的、已发布标准的,且有多种实现的语言。
Haskell有一个活跃的社区,在线上包仓库Hackage上已有3600多个第三方开源库工具。
Haskell的主要实现——GHC——是个解释器,也是个原生代码编译器。它可以在大多数平台运行。提到GHC是因其在并发和并行上的高性能实现,也因其丰富的类型系统,包括最近的创新,如广义代数数据类型和类型族(Type Families)。
我相信很多朋友们看完上面的描述以后,是下面的表情。
简单的说,就是完全看不懂上面写的东西啊。是的,其实非专科人士看上面的描述是很难理解的。所以,下面我们尝试用最浅显易懂的语言去描述“为什么要学Haskell”这个问题。
编程领域里有很多的语言,他们分别有各自不同的语法和用在不同的领域,但是它们的思维方式是非常接近的,所以当精通一门语言后,学习另外一门语言会非常的快。
那为什么在这么多语言里,我们选择了Haskell呢?因为它入门快(因为是纯函数式编程语言,没有涉及到类的概念),表达严谨(严谨的思维可以培养良好的编程习惯)和代码简单一目了然(非常接近数学函数的表达方式)。
培养良好的编程习惯真的很重要吗?我们看看两句不同表达方式,但是意思是一样的句子:
“今天晚上我们一家要出去吃饭。”和“出去吃饭,我们一家今晚。”
前面一句看起来就非常直观,而后面的一句浏览起来则会比较费力。所以当一篇文章大量的出现这种主谓语句随意摆放的句子时,那么别人看起来就会变得非常吃力。所以好的编程习惯,可以方便未来自己修改和方便别人一同协作。而恰好Haskell就是一种要求你必须使用正确习惯进行编程的一种语言。
“为什么Haskell值得学习?”
“可能因为有趣吧?”
我想“有趣”这个理由,就已经非常棒了。Haskell能给我们带来一种最纯粹的编程乐趣,没有太多非常复杂的概念,让我们专心的享受编程的美好。