开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

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:102473
用户头像

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

关注

评论

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

使用 THREE.js 进行边界体积碰撞检测

3D建模设计

three.js 碰撞检测

揭秘ChatGPT,如何打造自己的自定义指令 | 京东云技术团队

京东科技开发者

自定义指令 大语言模型 chatgpt app 企业号 8 月 PK 榜

软件测试 | 人工智能:优势与挑战

测吧(北京)科技有限公司

测试

生成式AI:全球传媒软件市场的璀璨新星

百度开发者中心

人工智能 媒体 生成式AI 文心一言

深入MaxCompute -第十一弹 -QUALIFY

阿里云大数据AI技术

大数据

Java单元测试及常用语句 | 京东物流技术团队

京东科技开发者

Mockito 测试 单元测试 企业号 8 月 PK 榜 Java单元测试

浅析Java - SPI机制 | 京东云技术团队

京东科技开发者

Java 后端 spi 企业号 8 月 PK 榜

The difference between PCBA and bottom plate + SOM

wifi6-yiyi

wifi6 wifi5 PCBA SOM

生成式AI艺术创新

百度开发者中心

人工智能 生成式AI 文心一言

本文介绍如何使用 Three.js 库在边界框和球体之间实现冲突检测。假设在阅读本文之前,您已经先阅读了我们的 3D 碰撞检测介绍性文章,并了解了 Three.js 的基本知识。

3D建模设计

3D

生成式人工智能能否使数字孪生在能源和公用事业行业成为现实?

3D建模设计

数字孪生 生成式AI

PoseiSwap 开启“Poseidon”池,治理体系或将全面开启

威廉META

人工智能改善生活:不同受众的定制化应用

测吧(北京)科技有限公司

高清视频动态壁纸 Dynamic Wallpaper 免激活中文

胖墩儿不胖y

动态壁纸 Mac软件 高清动态壁纸软件

大数据平台数据脱敏是什么意思?有哪些方案?

行云管家

大数据 数据安全 大数据平台 等保合规

点对点传输技术可实现更大的文件传输

镭速

大文件传输 点对点传输

开源图形驱动在OpenHarmony上的使用和落地

OpenHarmony开发者

OpenHarmony

Comparing WiFi Performance: IPQ5018 vs IPQ4019/IPQ4029 SoMs

wallyslilly

IPQ4019 ipq4029 ipq5018

什么是数字孪生?

3D建模设计

数字孪生

【稳定性】揭秘团队快速排查问题的三字经,你学会了吗? | 京东物流技术团队

京东科技开发者

团队 线上故障 故障排查 企业号 8 月 PK 榜

一文带你了解跨境数据传输和隐私

镭速

跨境数据传输

生成式AI:提高生产力,重塑未来行业

百度开发者中心

人工智能 ChatGPT 生成式AI 文心一言

一篇文章看懂 JavaScript 如何实现继承

树上有只程序猿

JavaScript proto

7 个使用生成式 AI 构建的项目

3D建模设计

生成式AI

云密一体,京东云密码资源池实力守护安全防线

京东科技开发者

云原生 网络安全 密码安全 企业号 8 月 PK 榜

明年起,企业数据将作为资产被纳入会计报表

行云管家

数据 数据安全 数据安全中心 数据资源

英语学习工具分享 Eudic欧路词典 for Mac激活中文

mac大玩家j

Mac软件 英语学习工具 学习软件

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