写点什么

Haskell 获得 iOS 支持,并做出多项语言和性能改进

  • 2014-05-15
  • 本文字数:932 字

    阅读完需:约 3 分钟

GHC 7.8.1最近已经发布,为Haskell 生态系统带来多项改善。Haskell 现在可以针对iOS 编译,并且增加了多项新特性,像闭合类型族、角色、重载列表、模式同义词等。

Haskell 可以通过 clang 编译成 iOS 可用的文件。这支持使用 XCode 5 的开发。由于在 Haskell 中缺少跨平台的 GUI 类库,所以现在你需要单独在 objective-C 中开发 GUI,然后从 GUI 代码中调用 Haskell 函数。尽管这项支持已经在大概七个月之前就宣布了,但这是第一个包含了这项支持的 GHC 主要版本。

但要注意的是,在 iOS 上 Template Haskell 暂时还不可用。

跨平台编译也在总体上得到了改善。例如,动态连接得到了更好的支持。GHCi 现在默认会使用系统动态连接器,以此取代内建的静态连接器。有了 GHC,你可以使用新的编译标识“–dynamic-too”,从而同时生成静态和动态的对象文件。(默认情况下 GHC 还是会使用静态连接)。

在这个版本中,还有一些特性:

  • 闭合类型族(Closed Type Families)——用于重载数据类型的类型族。闭合类型拥有在某处定义的所有等式,且不可扩展——这对于避免一些最初开发者不想得到的后果非常有用。
  • 角色——为了在使用 GeneralizedNewTypeDeriving 的时候消除类型不安全的定义
  • 重载列表(Overloaded Lists)——一种使用列表的语法糖,用于构建 Set、Map、IntMap、Vector、Text 以及 Array 等结构。
  • 模式同义词(Pattern Synonyms)
  • Typeable 现在是多类型的,这使得 Typeable1、Typeable1 等可以彼此独立。
  • 新的 I/O 管理器,会线性扩展到 32 个核上
  • 对 Template Haskell 的七项改善,像对角色的支持、注释语法、“有类型的 Template Haskell 表达式”等
  • 生成程序的并行模式
  • 针对类型本身的改善(性能提升)

在下一个版本(7.10)中可能会有突破性的改变, Applicative 会成为 Monad 的超类。为了让这种转换更容易,GHC 的当前版本会忽略以下警告:类型是 Monad 但不是 Applicative、是 MonadPlus 但不是 Alternative,以及当本地函数被声称是 join、<*>。

还有多项改变,你可以参考发布记录获得完整列表。

你还会注意到 Haskell 平台——它把 GHC 和工具绑定在一起,从而更好地与 Haskell 协作——还没有更新使用最新版本的 GHC。

查看英文原文: Haskell Gets iOS Support, Several language and Performance Improvements

2014-05-15 20:102909
用户头像

发布了 340 篇内容, 共 146.7 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

云桌面如何部署?云桌面系统方案部署详细教程

青椒云云电脑

云桌面 云桌面系统

SRM供应商招采系统(源码)

金陵老街

什么是多云? 为什么我们需要多云可观测性 (Observability)?

NineData

多云服务 多云架构 多云管理 多云 多云多源

披荆斩棘的芒果 TV:基于 StarRocks 的云原生湖仓架构升级

StarRocks

算启新程 智享未来,英特尔携中国移动为行业数字化转型提供新动能

E科讯

“鲸鸿动能·品牌共创计划”发布,多项权益助力品牌激发无限潜能

最新动态

Python 实训教学,更便捷的学生邀请及内容分发|ModelWhale 版本更新

ModelWhale

人工智能 数据分析 在线编程 高等教育 云课堂

基于 ACK Fluid 的混合云优化数据访问(四):将第三方存储目录挂载到 Kubernetes,提升效率和标准化

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生 ACK

低代码平台技术分享官丨工作流应用场景之任务交接

inBuilder低代码平台

工作流 低代码

语音识别技术:现状、挑战与未来发展

数据堂

持续测试新范式:拨压测一体化

阿里巴巴云原生

阿里云 云原生 压测 拨测

简单聊聊低代码

互联网工科生

低代码 数字化

大咖汇聚,KaiwuDB 邀您共话 AI+ DB 发展新趋势

KaiwuDB

KaiwuDB AIDB

软件测试/测试开发丨基于人工智能的代码分析与 Bug 检测实战

测试人

人工智能 程序员 软件测试 自动化测试 测试开发

深入浅出了解华为云API网关的Gzip功能

云计算 软件开发 API 华为云

邀你见证一本思维小册子的诞生:《豆哥宝典:思维模型》

豆哥

AI 思维模型 GPT 宝典

基于Vue构建的快速开发框架

树上有只程序猿

Vue 低代码

ETL数据转换方式有哪些?

谷云科技RestCloud

数据同步 ETL

​左手 Serverless,右手 AI,7 年躬身的古籍修复之路

阿里巴巴云原生

阿里云 Serverless 云原生

WorkPlus安全专属的企业IM助力政企高效协作

BeeWorks

前端代码重复度检测

南城FE

JavaScript 前端 代码

回归营销初心,2023金投赏鲸鸿动能专场聚焦品牌重塑

最新动态

Haskell获得iOS支持,并做出多项语言和性能改进_语言 & 开发_Roopesh Shenoy_InfoQ精选文章