写点什么

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

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

关注

评论

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

云服务与低代码开发的结合:重塑现代软件开发模式

快乐非自愿限量之名

云原生 低代码 云服务

AIGC在保险场景中的视觉应用

京东科技开发者

最适合ZKsync主网和撸空投的4个钱包推荐,bitget钱包

股市老人

蓝易云 - 关于openfeign的http和rpc

百度搜索:蓝易云

云计算 Web 服务器 云服务器 openfeign

蓝易云 - linux系统中u-boot命令的EMMC和SD卡操作命令分析

百度搜索:蓝易云

Linux 云服务器 SD EMMC U-Boot

Apache IoTDB 走进东南大学,深入分享项目发展历程与收获

Apache IoTDB

一键获取企业“松弛感”

脑极体

云服务

云电竞平台测评

Yan-英杰

又来了!涛思数据成为中关村物联网产业联盟高级会员单位

TDengine

数据库 tdengine 时序数据库

电竞直播APP软件开发公司哪家好?现成源码由哪些优势

软件开发-梦幻运营部

接口测试:Mock 的价值与意义

霍格沃兹测试开发学社

游戏部署换新季,华为云618营销季助力游戏企业闯关升级

YG科技

Apache IoTDB 走进东南大学,深入分享项目发展历程与收获

Apache IoTDB

AI大佬都在说下一个爆点是智能体,建议开发者抢占先机!

AI浩

智能体

蓝易云 - linux系统中rootfs根文件系统制作及挂载基本操作

百度搜索:蓝易云

Linux 运维 服务器 云服务器 rootfs

FabFilter Total Bundle 2024 Mac音频插件合集 v2024.05.30直装激活版

Rose

MMPsy 数据集:数业智能心大陆在多模态心理评估中的创新与应用

心大陆多智能体

人工智能 数据分析 数据集 多模态 数字心理

专访 Altair 大中华区总经理刘源博士:仿真拥抱人工智能,Altair 打造数字孪生新生态

Altair RapidMiner

人工智能 机器学习 数据分析 altair

【程序设计】做一个发送系统邮件的功能,如何设计数据表?

靠谱的程序员

程序设计

直播预告丨华为数字化转型解决方案,助力钢铁行业飞越“寒冬”!

YG科技

蓝易云 - centos脚本获取昨天日期删除指定文件之外的其他文件

百度搜索:蓝易云

云计算 Linux 服务器 系统 云服务器

连续两年入选CVPR !快手KVQ,大模型加持的视频质量评价“黄金眼”

快手技术

音视频 快手 KVQ

Apache IoTDB 走进东南大学,深入分享项目发展历程与收获

Apache IoTDB

Java实现基于ArrayList的生产者/消费者

极客罗杰

HarmonyOS NEXT大揭秘进入倒计时:HDC 2024华为开发者大会精彩亮点抢先看

最新动态

第55期|GPTSecurity周报

云起无垠

Microsoft Remote Desktop for Mac(微软远程连接软件)v10.9.8直装激活版

Rose

利用Python语言调用腾讯混元大模型接口实战指南

幂简集成

Python API 大模型

极速查询:StarRocks 存算分离 Compaction 原理 & 调优指南

StarRocks

云计算 大数据 数据仓库 数据湖 湖仓一体

线性稳压器LDO的基础知识

芯动大师

芯片 LDO 电源

多媒体下载和转换工具Allavsoft

Rose

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