写点什么

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

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

关注

评论

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

4轮技术面+1轮HR面,成功拿到腾讯40k*16的Offer ,详解面试流程和真题解析

Java 程序员 架构 面试

“人人皆可成为AI开发者”!百度世界大会官宣百度松果学堂成立

百度大脑

人工智能

阿里专家分享的SpringCloudNginx高并发核心文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

搭建太阳系3D可视化平台,科普宇宙的未知奥秘

一只数据鲸鱼

科普 数据可视化 智慧宇宙 太空

中国法定数字货币(DCEP)全面启航!全国普及势在必行

CECBC

Android SDK 之用户路径采集

神策技术社区

数据 路径规划 分析 行为数据

阿里专家分享内部绝密RocketMQ核心原理与最佳实践PDF

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

80W美团架构师整理分享出了Spring5企业级开发实战文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Linux内核源码分析方法—程序员进阶必备

Linux服务器开发

操作系统 Linux内核 内核源码 底层原理 内核开发

python通过Matplotlib绘制常见的几种图形

Python研究者

8月日更

神策分析 Web JS SDK 功能介绍

神策技术社区

程序员 代码 埋点

写作——开启技术成长之路

神策技术社区

程序员 写作 日志

其实TCP聪明得很!详解TCP常见的五个异常处理场景

Java 编程 架构 程序人生 架构师

TronChain波场链智能合约开发详情|智能合约DAPP搭建

量化系统19942438797

智能合约 波场链

spring-boot 2.5.4,nacos 作为配置、服务发现中心,Cloud Native Buildpacks 打包镜像,GitLab CI/CD

Zhang

gitlab nacos CI/CD spring-boot 2.5.4 CNB

微信架构图设计&“学生管理系统”毕设架构

Imaginary

Golang高并发:生产者消费者模型

Regan Yue

Go 语言 8月日更 生产者消费者模型

新思科技推出Rapid Scan新功能帮助开发团队在编写云原生应用的同时确保安全性

InfoQ_434670063458

新思科技 静态应用安全

MySQL information_schema 系统库介绍

Simon

MySQL

小布助手在面向中文短文本的实体链指比赛中的实践应用

OPPO小布助手

人工智能 算法 模型训练 智能助手 短文本

手把手教你15分钟搭建人脸戴口罩识别软硬件系统

百度大脑

人工智能 EasyDL

探索技术与应用融合的区块链 实现产业良性发展

CECBC

小米和网易两位资深工程师联合编写的HBASE原理与实践PDF

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

迅雷不及掩耳盗铃

escray

生活记录 8月日更 搜房记

烂大街的Spring循环依赖该如何回答?

Java spring 程序员 架构 面试

微信小程序图片流&本地图片转base64处理方案

页面仔小杨

微信小程序

iOS SDK 架构解析

神策技术社区

程序员 数据 埋点

膜拜!终于拿到了美团大佬分享的Netty源码剖析与应用PDF

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

LVS 学习: netfilter 与 ipvs 无秘密

绅鱼片

Linux 负载均衡 LVS Netfilter IPVS

大数据实战训练营-sparkcore作业

Clarke

ipfs投资者靠什么赚钱?投资ipfs要多少钱?

投资ipfs要多少钱 ipfs投资者靠什么赚钱

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