不久前我获得了第二版软件抽象,当我需要刷新记忆如何拼写elems
函数的名称时,我认为“哦,好的,我可以检查新版本,而不是试图在第一版的最终文件中阅读我难以辨认的手写笔记。“
但是我找不到“seq”或“elems”或索引中任何其他帮助函数的名称,也没有在附录的语言参考中看到任何seq
关键字的提及乙
以下一种或多种情况似乎可能如此;哪个?
seq
关键字,因为set
和其他一元运算符的关键字并不严格地说是关键字。 (请解释!)我想,试着在这里提出一个普遍有用的问题,我在问:Alloy Analyzer 4.2(或任何4. *)实现的语言与软件抽象第二版?
答案 0 :(得分:3)
当前的实施对应this在线文档。
序列实际上不是语言的一部分; x: seq A
可以看作x: Int -> A
的语法糖,所有效用函数(例如first
,last
,elems
)都是库定义的(在util/sequence
)。实际的实现有点复杂(只是为了让我们可以让用户编写类似x.elems
的东西并同时让类型检查器开心),但从概念上讲,这是正在发生的事情。