Haskell 是什么

Fanly 问答 2019-08-02 15:15:48 阅读(...)

Haskell是一种标准化的,通用的纯函数编程语言,有非限定性语义和强静态类型。Haskell语言的最重要的两个应用是GHC和Hugs。

Haskell 是一种标准化的,通用的纯函数编程语言,有非限定性语义和强静态类型。Haskell 语言的最重要的两个应用是 GHC(Glasgow Haskell Compiler)和 Hugs(一个 Haskell 语言的解释器)。

Haskell

Haskell 的命名源自美国逻辑学家哈斯凯尔·加里,他在数理逻辑方面上的工作使得函数式编程语言有了广泛的基础。在 Haskell 中,“函数是第一类对象”。作为一门函数编程语言,主要控制结构是函数。

Haskell 语言是 1990 年在编程语言 Miranda 的基础上标准化的,并且以λ演算为基础发展而来。这也是为什么 Haskell 语言以希腊字母“λ”(Lambda)作为自己的标志。Haskell 具有“证明即程序、命题为类型”的特征。

Haskell 特性

Haskell 是现有的一门开放的、已发布标准的,且有多种实现的语言。支持惰性求值、模式匹配、列表解析、类型类和类型多态。它是一门纯函数编程语言,这意味着大体上,Haskell 中的函数没有副作用。Haskell 用特定的类型来表达副作用,该类型与函数类型相互独立。纯函数可以操作并返回可执行的副作用的类型,但不能够执行它们,只有用于表达副作用的类型才能执行这些副作用,Haskell 以此表达其它语言中的非纯函数。

Haskell 拥有一个基于 Hindley-Milner 类型推论的静态、强类型系统。Haskell 在此领域的主要创新就是加入了类型类(type class),原本设想作为重载的主要方式,在之后发现了更多用途。

Haskell 的主要实现 GHC 是个解释器,也是个原生代码编译器。它可以在大多数平台运行,GHC 在并发和并行上具有高性能的实现能力,也有丰富的类型系统,如广义代数数据类型和类型族(Type Families)。

单子是一个抽象类型,可以表达不同种类的计算,包括异常处理、非确定性、语法分析以及软件事务内存,其中一个应用是用于表达副作用的类型。单子定义为普通的数据类型,同时 Haskell 也为其提供了几种语法糖。

Haskell 有一个活跃的社区,在线上包仓库 Hackage 上有丰富的第三方开源库或工具。

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • weibo 微博

    微博后悔药是什么

    微博后悔药,是新浪微博最新推出的一项会员特权功能,能帮你找回删除的微博,只可找回 24 小时内自己删除的最近 100 条微博,每条微博只可找回一次,审核通过的微博将会按照原时间顺序恢复到个人主页
  • Compressed file 压缩文件

    压缩包格式是什么

    压缩文件格式指的是文件经过某个程序执行压缩后的文件格式,压缩文件格式的种类比较多,常见的有三种“.rar”、“.7z”、“.zip”;不常见的有“.ar”、“.bz”、“.car”、“.dar”、“.cpgz”、“.f”、“.ha”等等。
  • IPhone

    苹果手机发热发烫是什么原因

    导致手机发热的原因可能是手机信号差,手机会自动加大发射功率,手机发热也越大;运行高耗能的App;边充电边玩游戏或通话;手机的使用环境温度过高;充电产生发热;硬配件损坏;高负荷工作产生发热;散热不佳导致发热等等。
  • Video glasses 视频眼镜

    视频眼镜是什么

    视频眼镜一种戴在头上的虚拟显示器,也称为眼镜显示器和便携式影院,因为眼镜式显示器是为大屏幕显示音视频播放器的视频图像而设计的,所以称为视频眼镜,视频眼镜最初是军事上需求和应用于军事上的。
  • air conditioner 空调

    空调漏水是什么原因

    空调漏水可能是因为室内机长期不清洗滤网过脏导致滴水;室外机排水管被堵疏通即可;空调配管上的保温材料质量过差或配管太薄;空调室内机排水管老化或弯曲,建议换个新的排水管;安装的不够牢固;室外排水管被堵,可先检查排水管和空调管道接口是否接好。
  • HSE

    HSE管理体系是什么意思

    HSE管理体系指的是健康、安全和环境三位一体的管理体系,它是一种通过事前识别与评价,并采取有效的防范手段、控制措施和应急预案来防止事故的发生或把风险降到最低程度,以减少人员伤害、财产损失和环境污染的有效管理体系,HSE管理体系核心是责任制。