Alloy有很多逻辑连接词,例如and
和or
以及implies
。但我找不到true
和false
。他们失踪了吗?目前我一直在使用1=1
和1=0
,但这相当hacky(并提供编译器警告)。
<子>
顺便说一句,我想要true
和false
的原因是我正在写一些产生.als
文件的东西。我的顶级.als
文件需要我自动生成的.als
文件定义wellformed
谓词和faulty
谓词。有时这些谓词很复杂,但有时我只希望wellformed[...]
返回true
,而faulty[...]
则返回false
。这就是我希望在Alloy语言中true
和false
的原因。
答案 0 :(得分:3)
由于空谓词为真,我最喜欢的true和false实现是:
apply plugin: 'android'
dependencies {
compile 'joda-time:joda-time:2.4'
compile 'joda-time:joda-time:2.2'
}
答案 1 :(得分:3)
他们没有很好的理由内置:请参阅软件抽象的p137常见问题解答(Daniel Jackson,麻省理工学院出版社,2012年)。简而言之,如果它们是内置的,那么你必须能够声明一个关于布尔值的关系,然后因为布尔表达式可以求值为{}和{T,F},所以连接词需要要对这些值进行定义,这似乎是一个非常糟糕的主意。
答案 2 :(得分:1)
pred true {no none}
pred false {some none}
似乎有效;但是内置这些内容会很不错。