“true ==!false”总是如此吗?

时间:2014-06-12 14:57:01

标签: boolean logic boolean-logic

这是今天在办公室提出的。具有各种类型的计算,各种语言和各种布尔类型。以下总是如此

true == !false;

5 个答案:

答案 0 :(得分:2)

虽然没有语言可以直接表达你的表达式,但是有很多语言都有相关的表达式

someTrueValue == !false

不成立。例如,C及其变体。和Lisp变种,仅举几例。在这些语言中,有一个假值(零或零),其他一切都被认为是真的。因此,!false将产生其中一个真值,这些值可能与someTrueValue不同。

答案 1 :(得分:1)

假设truefalse是表示布尔值的保留关键字,它应该始终为真。

如果语言碰巧没有保留这些关键字(即:旧版本的Python),您总是可以使用这些名称声明一个变量,使true == !false为假。

答案 2 :(得分:1)

除了truefalse是变量之外,!在许多语言中具有不同的含义。虽然我不知道任何使用==的语言而不是(某种)平等,但它可以是用户定义的。

答案 3 :(得分:0)

是。这是因为!false等于true,而true总是等于true。

答案 4 :(得分:0)

如果有一种语言(true ==!false)== false,那么语言将与布尔逻辑不一致('不一致'正在这里使用非正式和正式意义上布尔逻辑),其结果是可能导出不一致的逻辑断言(例如true == false或false == true)。

这样做的最终结果是,没有值得信赖的逻辑框架支持语言中任何条件的使用,使其变得无用。