Idris 2 version 0.6.0 发布,类 Haskell 的纯函数编程语言


Idris 2 发布了 0.6.0 版本。更新内容包括 REPL 变更、语法变更、编译器变更、IDE 协议变更和标准库变更等。

Idris 是一个类似 Haskell 的纯函数编程语言,类型系统支持 dependent types。

  • 依赖模式匹配的依赖类型系统
  • 简单的 C 函数接口
  • 编译器级别的编码支持
  • where 语句,with 规则,简单的 case 表达式,模式匹配 let 和 lambda 绑定
  • Dependent records with projection and update
  • Type classes
  • 类型驱动的重载方案
  • do notation and idiom brackets
  • 缩进语法
  • 可扩充的语法
  • Cumulative universes
  • 整体验证
  • 类似 Hugs 的交互环境

主要变化

  • 引入新的基于 Scheme 的实验性 evaluator(只有在通过 Chez scheme 或 Racket 编译时才可以使用)。如需在 REPL 中访问此功能,使用:set eval scheme将 evaluator 模式设置为基于 Scheme 的 evaluator。
  • 引入新选项evaltiming,用于计算 REPL 中的评估所需时间,通过:set evaltiming进行设置
  • :lp/loadpackage重命名为:package
  • 新增:import,其功能与:module相同
  • 新增通过:help <replCmd>获取详细帮助的功能,例如:help :help:help :let。这也适用于:?:h别名

详情查看 Changelog。


相關推薦

2022-10-26

个 PR。 IHP 是一个现代的开箱即用 (batteries-included) Haskell Web 框架,基于 Haskell 和 Nix 构建,具有速度快、安全、易于重构的特点。从构建原型到在生产环境使用,IHP 内置了足够完备的工具库,旨在提供最佳的开发者体验。

2023-04-24

日在社交网站发布招聘信息时,提到了他们团队对于各种编程语言的丰富使用经历。 接着他本人谈论了一些关于各种编程语言的感悟,其中包括 Golang、Rust、Java、Python,甚至提到了比较小众的 Vala。下面是对他发布内容的整理

2022-07-06

v6.0.1 是一个包含增强功能的补丁版本,修复了涵盖 20 种编程语言的错误。有关更改的完整列表,请参阅 "Pull Request" tab。一些重点更新内容如下: General 用于标记源目录并省略 gradle 包装器的 Idea plugin #12711 修复 came

2023-10-14

CL 是一个开源的基于约束的记录及函数语言并通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单

2023-01-12

feilong</groupId> <artifactId>feilong</artifactId> <version>3.4.0</version> </dependency> Gradle 依赖配置: com.github.ifeilong:feilong:3.4.0 本次升级共有 22 处变更, 具体参见 3.4.0 milestone 👽 不兼容 #498&nb

2022-10-04

le filetype.lua by default (#19216) Add undo! Add "prerelease" to version dict Click support for 'statusline', 'winbar' #18650 Add preview functionality to user commands allow Cmdheight=0 (EXPERIMENTAL) #16251 Stdpath('run'), /tmp/nvim.user/ #18993 Add 'mousescroll'

2022-09-06

Elixir v1.14 已发布。此版本为 Elixir 的调试体验和数据类型检查带来了许多改进。此外还添加了一个新的抽象,以方便进程的分区,称为PartitionSupervisor,以及优化编译时间和错误信息。 另外,Elixir v1.14 是支持 Erlang/OTP 23 的最后

2022-06-01

: use v5.36 版本包捆绑功能 Perl 5.36.0 稳定了版本包捆绑(Version bundles)功能,解决了 Perl 被诟病已久的 “样板文件” 问题。 该功能只需将这一行放在代码顶部: use v5.36; 这一行相当于以前的: require v5.36; use strict; use warnings;

2022-09-21

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最近发布的 0.23 版本增加了新特性,以及其他优化。 支持 Elixir Gleam 在 Erlang 虚拟机上与各种其他优秀编程语言一起运行,因此开发团

2024-01-30

stjson2</groupId> <artifactId>fastjson2</artifactId> <version>2.0.46</version> </dependency>   android4兼容版本 <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> <vers

2022-12-07

(":lib-cloud-file") maven { // 其他组件依赖自己的默认版本 version "0.2.0" variant "english-debug" } } } component { … }// 继续定义下一个组件 } ​组件的定义方式     rubik-root: 给App工程提供筛选组件能力,根

2023-01-26

复选框 ( #8562 )。 确保自动设置的变量pandoc-version, outputfile, title-prefix, epub-cover-image, curdir,dzslides-core可以被--variable命令行覆盖。 修复 linux/make_artifacts.sh 的手册页复制问题 ( #8566 )

2022-12-20

下载地址:https://www.libreoffice.org/download/download-libreoffice/?version=7.5.0

2023-04-10

从任何语言访问 API,包括 C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java, JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust 嵌入式、可编写脚本的终端仿真器 异步作业控制 多个编辑器实例之间的共享数据(shada)。 支持 XDG