Alloy 4,Software Abstractions 2E和seq关键字

时间:2013-05-29 22:09:13

标签: alloy

不久前我获得了第二版软件抽象,当我需要刷新记忆如何拼写elems函数的名称时,我认为“哦,好的,我可以检查新版本,而不是试图在第一版的最终文件中阅读我难以辨认的手写笔记。“

但是我找不到“seq”或“elems”或索引中任何其他帮助函数的名称,也没有在附录的语言参考中看到任何seq关键字的提及乙

以下一种或多种情况似乎可能如此;哪个?

  • 我错过了什么。 (什么?哪里?)
  • 附录B中未涵盖seq关键字,因为set和其他一元运算符的关键字并不严格地说是关键字。 (请解释!)
  • 在第二版出版后,对Alloy 4的序列支持进行了添加,因此需要通过参考Quick Guide和{{}中Alloy 4中新功能的讨论来增加本书的内容。 3}}在网站上。 (啊,好的。页面很慢,位很快。)
  • 其他......

我想,试着在这里提出一个普遍有用的问题,我在问:Alloy Analyzer 4.2(或任何4. *)实现的语言与软件抽象第二版?

1 个答案:

答案 0 :(得分:3)

当前的实施对应this在线文档。

序列实际上不是语言的一部分; x: seq A可以看作x: Int -> A的语法糖,所有效用函数(例如firstlastelems)都是库定义的(在util/sequence)。实际的实现有点复杂(只是为了让我们可以让用户编写类似x.elems的东西并同时让类型检查器开心),但从概念上讲,这是正在发生的事情。