写点什么

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

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

关注

评论

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

GitHub爆火!银四巨作:拼多多/蚂蚁/百度面经分享

比伯

Java 架构 面试 程序人生 技术宅

开放原子超级链动态内核上线,十分钟可搭建一条区块链

百度开发者中心

San介绍以及在百度APP的实践

百度开发者中心

以太坊杀手?NA公链(Nirvana)Chain忠于挑战自己NAC公链

区块链第一资讯

关于机器学习的十大常见问题

澳鹏Appen

人工智能 机器学习 深度学习 大数据 数据

Redis 客户端服务端命令数据交换

escray

redis 学习 极客时间 Redis 核心技术与实战 4月日更

为什么主动跨数据复制在5G时代非常重要?

VoltDB

数据分析 5G VoltDB 电信

华云大咖说 | 华云数据与海量数据携手共建国产云生态

华云数据

kubectl top node报错及解决

箭上有毒

阿里最新发布Spring Cloud ALiBaBa全解第三版开源!

Java架构追梦

Java 阿里巴巴 架构 面试 SpringCloud Alibaba

乡村振兴:AI+乡村的下一个命题

百度开发者中心

大牛荐书 | 百度技术大牛都在读的7本书!

百度开发者中心

500+解决方案已搭载,英特尔新至强出道不含糊

E科讯

纹理打包器TexturePacker

空城机

UI 4月日更 Texture Packer 纹理打包器 pixi

「开源」首次被列入“十四五”规划,未来大有可为

百度开发者中心

Python实现植物大战僵尸

不脱发的程序猿

Python GitHub 开源 游戏开发 4月日更

初窥Ray框架

行者AI

深度学习

中间件技术在百度云原生测试中的应用实践

百度开发者中心

中间件

飞桨框架2.0正式版重磅发布,一次端到端的“基础设施”革新

百度开发者中心

架构可视化支撑系统演进探索

华为云开发者联盟

架构 软件系统 架构可视化 辅助系统 架构可视化辅助系统

软件测试面试题【2021模拟面试整理版(含答案)】

程序员阿沐

面试 软件测试

正点原子:STM32F103(战舰)、STM32F407(探索者)、STM32F103(MINI)原理图和PCB

不脱发的程序猿

开发板 stm32 硬件设计 4月日更 正点原子

[知识它]一篇文章或一本书是怎么写出来的

知识它

写作技巧 写文章 快速写作 写作方法

翻译:《实用的Python编程》08_00_Overview

codists

Python

HugeGraph图数据库获Apache TinkerPop官方认证

百度开发者中心

阿里最强 Python 自动化工具开源了!

星安果

Python 开源 自动化 阿里

Javascript执行机制-任务队列

Sakura

基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之布局菜单嵌套路由(三)

crudapi

Vue crud crudapi quasar 路由

为什么很多SaaS叫好不叫座?

ToB行业头条

SaaS tob

iOS 面试策略之算法基础1-3节

iOSer

ios 面试 算法 iOS算法

百度应用部署秘籍

百度开发者中心

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