版本-2-2-6

--------------------------------------------------------------------------Agda 2版本2.2.6的发行说明------------------------------------------------------------------------自2.2.4以来的重要变化:语言--------*宇宙多态性(实验扩展)。要启用universe多态性,请给出标志--命令行上的universe多态性或(推荐)作为OPTIONS杂注。启用universe多态性时,Set接受一个参数,该参数为宇宙层面。例如,宇宙多态的类型身份是id:{a:Level}{a:Set a}→a→a。类型Level与一元自然数同构,应为使用BUILTINs LEVEL、LEVELZERO和LEVELSUC指定:数据级别:设置位置zero:级别suc:级别→级别{-#构建级别#-}{-#BUILTIN LEVELZERO零#-}{-#构建级别suc#-}还有一个额外的BUILTIN LEVELMAX,最多可使用两个水平:最大值:液位→液位→液位最大零米=米最大(sucn)零=sucn最大(suc n)(suc m)=suc(max n m){-#BUILTIN LEVELMAX最大#-}非多态宇宙能级集,集&#8321;等等都是糖用于设置零、设置(例如零)等。目前没有自动将类型从一个级别提升到另一个。它仍然可以通过定义类型来完成(相当笨拙)如下所示:提升的数据{a}(a:集合a):集合(例如a),其中提升:A→提升A然而,在一些指向未来。*多个构造函数、记录字段、假设或基元可以使用单一类型签名声明:data Bool:设置位置假真:布尔假设A B:设置*记录字段可以是隐式的:记录R:在其中设置领域{A} :设置f:A→A{B C}D{E}:设置g:B→C→E默认情况下,不打印隐式字段。*可以定义记录构造函数:记录∑(A:设置)(B:A→设置):设置其中构造函数__领域项目:A项目2:B项目在本例中,_获取类型(项目:A)→B项目→∑A B。对于隐式字段,相应的构造函数参数变为隐性的。请注意,构造函数是在/outer/scope中定义的,因此任何固定性声明必须在记录定义之外给出。构造函数不在记录模块内的范围内。还要注意,尚未实现记录的模式匹配然而。*内置挂钩,实现平等。数据类型data_≡_{A:Set}(x:A):A→Set whereref:x≡x可以使用以下命令指定为内置相等类型杂注:{-#构建等式_≡_#-}{-#内置REFL ref#-}内置等式用于新的重写构造下面描述的primTrustMe原语。*新的重写构造。如果eqn:a≡b,其中_≡_是内置等式(见上文)现在可以写了f ps重写eqn=rhs而不是f ps与a|eqn... | ._ | ref=相对湿度重写结构具有重写目标和上下文由给定的等式(从左到右)决定。您可以使用几个等式(按顺序)进行重写,方法是将它们带有竖线(|):f ps重写eqn₁|eqn⁄|=rhs重写后还可以添加子句:fps用e重写eqns…|p=rhs请注意,如果您想重写,则在重写之前进行模式匹配重写,然后进行模式匹配,可以在重写。有关一些示例,请参阅test/success/Rewrite.agda。*添加了一个新的原语primTrustMe:primTrustMe:{A:Set}{xy:A}→x≡y这里_≡_是内置等式(参见builtin hooks for equality,以上)。如果x和y在定义上相等,那么primTrustMe{x=x}{y=y}减少为refl。请注意,编译器将primTrustMe的所有用法替换为REFL内置,不检查定义是否相等。不正确使用primTrustMe可能会导致分段错误或类似错误问题。有关使用primTrustMe的示例,请参见数据。版本中的字符串标准库的0.3,用于实现可判定使用基本布尔等式对字符串进行等式。*对IMPORT杂注的语法和语义的更改,包括哈斯克尔外国金融机构使用。这样的杂注现在必须具有以下内容形式:{-#IMPORT<模块名称>#-}这些杂注被解释为/qualified/imports,因此Haskell名字需要限定(除非它们来自Haskell前奏)。*水平制表符(U+0009)不再被视为白色空间。*不再支持行杂注。*--include-path标志不能再用作杂注。*证明无关性的实验性和不完全支持已禁用。工具-----*Emacs模式下的新“intro”命令。当有一种规范的方式时构建目标类型的东西(例如,如果目标类型是一对),可以用这种方式细化目标。命令适用于以下目标类型:-一种数据类型,其中只有一个构造函数可以用于构造一个目标类型的元素。(例如,如果目标是一个非空向量,将引入“cons”。)-记录类型。将引入一个记录值。隐性的除非显示隐式参数,否则将不包括字段已打开。-函数类型。lambda绑定尽可能多的变量将介绍。变量名称将从目标类型,如果其正规形式是从属函数类型,否则,它们将是“x”的变体。隐式lambdas将仅当隐式参数的显示被切换时才插入上的。此命令可以通过使用refine命令(C-C-r)调用当目标为空时。(中refine命令的旧行为这种情况是使用minibuffer请求表达式。)*如果当前文件类型检查成功,没有任何警告。*如果加载了文件F,并且该文件定义了模块M,则它是一个如果F不是根据include定义M的文件,则出错路径。注意,命令行工具和Emacs模式定义了相对包含路径的含义不同:命令行工具相对于当前工作目录解释它们,而Emacs模式相对于当前项目。(例如,如果模块A.B.C从文件<some-path>/A/B/C.agda,则根目录为<some-path>)*如果包含路径上有几个文件匹配给定的模块名称。*接口文件是可重定位的。您可以在源树周围移动只要以相应的方式更新包含路径。注释如果模块M的时间戳严格为比相应接口文件(M.agdai)更新。*当存在最新的接口时,不再进行类型检查。(以前,最初的模块总是经过类型检查。)*Emacs(.agda.el)的语法高亮文件不再使用。--emacs标志已被删除。(语法突出显示信息缓存在接口文件中。)*Agate和Alonzo编译器已退役。选项--玛瑙、--alonzo和--malonzo已被去除。*MAlonzo输出的默认目录是项目的根目录目录。--malonzo-dir标志已重命名为--compile-dir。*Emacs模式:C-C C-x C-d不再重置类型检查状态。C-C C-x C-r可用于更完整的重置。C-C C-x C-s公司(用于重新加载语法突出显示信息)远离的。可以使用C-C C-l来代替。*Emacs模式用于定义一些“缩写”,除非用户显式关闭了此功能。新的默认设置是/not/to添加任何缩写。可以通过自定义获取旧的默认值agda2-mode-abbrevs-use-defaults(自定义缓冲区可以是通过在Agda文件后键入M-x customize-group agda2 RET获得已加载)。
页面上次修改时间:2009年12月23日下午04:38
技术支持私人维基