博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Idris趋近发布1.0版
阅读量:6720 次
发布时间:2019-06-25

本文共 1131 字,大约阅读时间需要 3 分钟。

据Idris开发团队,基于依赖类型的Idris语言即将完成0.99版本,该版本可被看成是1.0版的Alpha版本。Idris 1.0版有望于2017年2月左右发布。

\\

Idris是一种纯函数式编程语言,目标在于注重语言通用性及满足系统编程所需效率的同时,让更多的编程人员使用基于类型的程序验证技术。

\\

Idris的主要理念是。正如函数表述了值之间依赖性,依赖类型旨在表示类型与值之间的依赖性。,我们可以定义一类返回值为一个列表的函数,要求列表中的元素值依次递减,只有满足了该属性,才会去编译该函数所采用的任何具体实现。对于可被Idris所表示的软件属性,还包括数组范围验证以及,譬如确保所有程序遵循特定的协议访问文件句柄。下面所示的代码段使用Idris定义了Vect向量的依赖类型,并向vapp函数中添加了两个向量:

\\
\infixr 5 ::;\data Vect : Set -\u0026gt; Nat -\u0026gt; Set where\   VNil : Vect a O\ | (::) : a -\u0026gt; Vect a k -\u0026gt; Vect a (S k);\vapp : (Vect A n) -\u0026gt; (Vect A m) -\u0026gt; (Vect A (plus n m));\vapp VNil ys = ys;\vapp (x :: xs) ys = x :: vapp xs ys;\
\\

编译器可以检测到上面代码段中所涉及类型的误用。例如,下面的vapp:

\\
\vapp : Vect a n -\u0026gt; Vect a m -\u0026gt; Vect a (plus n m);\vapp VNil      ys = ys;\vapp (x :: xs) ys   = x :: vapp xs xs; -- BROKEN\
\\

据Idris核心开发人员介绍,决定发布1.0版的主要原因是该语言正步入稳定。这并不意味着Idris已“可用于生产环境”,因为开发团队还不可能做到提供长期支持或是保证实现的质量。即使如此,作为一种探究如何使用依赖类型编程的研究工具而言,Idris还是颇具价值的。

\\

与类似,Idris也支持交互定理证明,其中包括了,但是在用于定理证明之前,Idris意在首先成为一种通用的编程语言。Idris程序将被编译为C语言,其内存管理依赖于并使用了垃圾回收机制。

\\

查看英文原文:

\\

感谢对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博(,),微信(微信号:)关注我们。

转载地址:http://dnjmo.baihongyu.com/

你可能感兴趣的文章
ReflectUtil
查看>>
MySQL show processlist;命令详解
查看>>
TCP报文结构
查看>>
架构组织形式的讨论,以及架构师之路的建议
查看>>
详解JavaScript模块化开发
查看>>
C之有符号与无符号(二)
查看>>
DOCKER网络代理设置
查看>>
javascript基础语法——变量和标识符
查看>>
Java静态变量、非静态变量、成员变量、的区别
查看>>
数据库中有外键时JavaBean的写法
查看>>
linux-sed
查看>>
16.4-16.8 Tomcat监听80端口,Tomcat的虚拟主机,访问日志
查看>>
app客户端测试
查看>>
nodejs渐入佳境[23]-hash函数
查看>>
Big Data Integration with Hadoop: A Q&A Spotlig...
查看>>
【062有新题】OCP 12c 062出现大量之前没有的新考题-16
查看>>
触手TV下载|触手TVapp下载
查看>>
PDF文件如何修改,PDF怎么添加文本高亮
查看>>
大链表数据去重的办法
查看>>
Awk使用案例总结(运维必会)
查看>>