Idris 语言文档 Version 1.3.1then Yes else No 通常,where 从句中定义的函数和其它顶层函数一样,都需要类型声明。 然而,函数 f 的类型声明可 在以下情况中省略: • f 出现在顶层定义的右边 • f 的类型完全可以通过其首次应用来确定 因此,举例来说,以下定义是合法的: even : Nat -> Bool even Z = True even (S k) = odd k where odd Z = xs) 注:声明顺序与 mutual 互用块 通常,函数与数据类型必须在使用前定义,因为依赖类型允许函数作为类型的一部分出现, 而类型检 查会依赖于特定的函数如何定义(尽管这只对全函数成立,见 完全性检查 夨 姩 妡妵 头头天 )。 然而,此限制 可通过使用 mutual 互用块来放宽,它允许数据类型和函数同时定义: mutual even : Nat -> Bool ( ä ÿ Ń é 我们可以将一个数和一个特定长度的 Vect 构造成一个序 对: vec : (n : Nat ** Vect n Int) vec = (2 ** [3, 4]) 如果你喜欢,也可以把它写成较长的形式,二者完全等价: vec : DPair Nat (\n => Vect n Int) vec = MkDPair 2 [3, 4] 当然,类型检查器可以根据向量的的长度推断出第一个元素的值。 我们可以在希望类型检查器填写值1 魔豆 | 224 页 | 2.06 MB | 2 年前3
LaTex (tikz) 转换为图像PDFs into EPSs. Finally, delete all single page PDFs and keep only the 22 % EPSs. 本方法之原理于转换为 EMF 的流程完全一样。都是先对生成的 PDF 进行分页,再调用 inkscape 进行处理。 本方法用到以下三份脚本: 1. mk_folder 创建文件夹。 2. gs_split_pdf 将多页的 PDF1 魔豆 | 37 页 | 2.52 MB | 2 年前3
共 2 条
- 1










