热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

代码编程_Haskell代码编程

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Haskell代码编程相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Haskell代码编程相关的知识,希望对你有一定的参考价值。














Haskell代码编程


Haskell是什么?




Haskell代码编程















Haskell(发音为 /ˈhæskəl/) 是一种标准化的,通用纯函数式编程语言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家Haskell Brooks Curry,他在数学逻辑方面的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是一等公民”。作为函数式编程语言,主要控制结构是函数。

















Haskell代码编程


特点




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代码编程














简单的说,就是完全看不懂上面写的东西啊。是的,其实非专科人士看上面的描述是很难理解的。所以,下面我们尝试用最浅显易懂的语言去描述“为什么要学Haskell”这个问题。




编程领域里有很多的语言,他们分别有各自不同的语法和用在不同的领域,但是它们的思维方式是非常接近的,所以当精通一门语言后,学习另外一门语言会非常的快。




那为什么在这么多语言里,我们选择了Haskell呢?因为它入门快(因为是纯函数式编程语言,没有涉及到类的概念),表达严谨(严谨的思维可以培养良好的编程习惯)和代码简单一目了然(非常接近数学函数的表达方式)。




培养良好的编程习惯真的很重要吗?我们看看两句不同表达方式,但是意思是一样的句子




“今天晚上我们一家要出去吃饭。”和“出去吃饭,我们一家今晚。”




前面一句看起来就非常直观,而后面的一句浏览起来则会比较费力。所以当一篇文章大量的出现这种主谓语句随意摆放的句子时,那么别人看起来就会变得非常吃力。所以好的编程习惯,可以方便未来自己修改和方便别人一同协作。而恰好Haskell就是一种要求你必须使用正确习惯进行编程的一种语言。

















Haskell代码编程


总结



















“为什么Haskell值得学习?”


“可能因为有趣吧?”




我想“有趣”这个理由,就已经非常棒了。Haskell能给我们带来一种最纯粹的编程乐趣,没有太多非常复杂的概念,让我们专心的享受编程的美好。

























end

















推荐阅读



























码上开学


让编程成为一种乐趣


























长按二维码关注










推荐阅读
author-avatar
神秘的sy0001
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有