有没有一种编程语言可以让我们写这样的东西:
a => b
计算蕴涵? (其中
a
和 b
是布尔值)
我能找到的最接近的是 Scala:
a <= b
但看起来与“暗示”的实际含义完全不同。
所以获胜者是 Scala:
implicit class BooleanMagic(val b: Boolean) extends AnyVal {
def ==>(other: =>Boolean) = !b || other
}
感谢:
> true ==> false
res0: Boolean = false
> false ==> (throw new Exception("I'm the president"))
res1: Boolean = true
支持此功能的另一种语言是 Groovy(从版本 5.0.0-alpha-4 开始):
groovy:000> true ==> false
===> false
groovy:000> false ==> { throw new Exception('Boom!') }()
===> true