发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

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

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

关注

评论

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

SVN vs Git 不是技术之争,而是生态之争

极狐GitLab

git svn DevOps 版本控制 极狐GitLab

极狐GitLab DevSecOps 为企业许可证安全合规保驾护航

极狐GitLab

许可证 DevSecOps 极狐GitLab 安全左移 安全合规

如何在服务端渲染fabric.js

ModStart

Centos 环境搭建

流火

Linux centos Centos 7

1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等

汀丶人工智能

数据标注 关系抽取 labelstudio 实体抽取

政企专属的IM即时通讯平台,促进团队安全沟通与协作

WorkPlus

从ChatGPT的技术发展角度解析未来智能化的发展方向

加入高科技仿生人

人工智能 AI 低代码 智能化 ChatGPT

博睿数据入选中国信通院《高质量数字化转型产品及服务全景图》

博睿数据

可观测性 智能运维 博睿数据 信通院 高质量发展

备战一年半,我们让最火的开源网关上了云

API7.ai 技术团队

api 网关 APISIX SaaS 平台

基于Python+uiautomation的windowsGUI自动化测试概述

Python 自动化测试 unittest WindowsGUI UIaotumaiton

该如何正确的中断一个线程的执行

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 3 月 PK 榜

MAXON indoor or outdoor tracking and positioning tech with Wi-Fi Bluetooth Lora UWB AoA

wifi6module

LoRa wifi solution blueteeth UWB AOA

PHP中出现Cannot modify header information - headers already sent

ModStart

【2.24-3.3】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

国内“谁”能实现chatgpt,一文带你深入了解宏观技术路线| 社区征文

汀丶人工智能

ChatGPT

坚如磐石:TiDB 基于时间点的恢复(PiTR)特性优化之路丨6.5 新特性解析

PingCAP

TiDB

火山引擎DataTester:A/B实验如何实现人群智能化定向?

字节跳动数据平台

大数据 AB testing实战

BSN-DDC基础网络详解(四):资金账户充值

BSN研习社

国内“谁”能实现chatgpt,对MOSS、ChatYuan给出关键技术简评,一文带你深入了解宏观技术路线| 社区征文

汀丶人工智能

ChatGPT

卷麻了,业务同事都能开发软件,我简直无地自容……

这我可不懂

低代码 低代码开发平台 JNPF

还在头疼你的API,送你一个保姆级的API设计管理平台

华为云开发者联盟

云计算 开发 华为云 华为云开发者联盟 企业号 3 月 PK 榜

软件开发,如何同时保证效率和质量?

SoFlu软件机器人

体验ChatGPT后,陷入沉思...

Openlab_cosmoplat

开源 行业趋势 ChatGPT

AI开发实践丨客流分析之未佩戴口罩识别

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

文件传输协议的五种安全文件传输替代方案

镭速

如何通过C#和VB.NET压缩PDF文档

Geek_249eec

C# .net PDF VB.NET

百度点石隐私计算平台与FATE开源框架实现互联互通

百度安全

人工智能 开源 联邦学习 开发

吹爆Alibaba自研的Spring全能笔记,建议人手一份!

小小怪下士

Java spring springmvc springboot

直播预告 | 时序数据库的流计算支持

KaiwuDB

流计算 时序数据库 KaiwuDB

Java Agent场景性能测试分析优化经验分享

华为云开发者联盟

开发 华为云 java 华为云开发者联盟 企业号 3 月 PK 榜

Spring Boot是如何内嵌Tomcat的?原理剖析

做梦都在改BUG

Java tomcat Spring Boot

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