[TIL] 与西瓜为伴的六月
06/21
Vacuous truth 虚真论断
[].allSatisfy { $0 > 0 } // 1
[].allSatisfy { $0 <= 0 } // 2
请回答,上面两个表达式的值是什么? 结果是,它们的值都是 true
,不得不承认,这多少有一些违背人的直觉。
在 swift forums 上也有人对此表示了疑惑: https://forums.swift.org/t/unexpected-behaviour-of-allsatisfy/20136
Everything is true of the elements of the empty set.
事实上,其中蕴含了经典的逻辑悖论:实质蕴含悖论。如果转换为中文,就是一种“如果...那么...”的关系。例如:
- (维基百科中记载的经典案例)如果房间里没有手机,那么所有手机都是关机状态。
- (不可能发生的事情)如果回到十年前,那么我要好好学习。
如果 p
那么 q
被称为 p
与 q
的蕴含式,记作 p → q
。其真值表如下:
p | q | p → q |
---|---|---|
T | T | T |
T | F | F |
F | T | T |
F | F | T |
综上,当集合为空(p == false
)时,无论 q
是什么条件它们的蕴含式都一定为真,这也就是需真论断。蕴含式的正确并不意味着生活中一些关系的合理性,将它当作一种既定的逻辑就可以。
06/xx
做了自己认为应当有人去做的事情,深入学习了今年 WWDC 的 Accessibility 专题,并写了以下两篇文章: