2014-06-12 3 views
1

Cela a été soulevé dans le bureau aujourd'hui. Avec les différents types de calcul, différentes langues et divers types booléens. Est-ce que ce qui suit est toujours vrai?Est-ce que "true ==! False" est toujours vrai?

true == !false; 
+2

... peut-être pas pour les très grandes versions de faux. (humour) – Steven

+0

Peut-être pas en Javascript. [Javascript est complètement dingue] (https://twitter.com/codinghorror/status/476826733576847360?utm_source=fb&utm_medium=fb&utm_campaign=tuxetuxe&utm_content=476831695078166528). – dcastro

Répondre

0

Oui. C'est parce que! False est vrai, et true est toujours vrai.

+0

Il y a encore une étape requise dans ce raisonnement. OP n'a pas demandé si 'true ==! False' mais si' true ==! False' est vrai. Alors ... "Oui, c'est parce que le faux est vrai, et le vrai est vrai, et c'est toujours vrai." – MattClarke

0

S'il existait un langage où (true ==! False) == false alors le langage serait incompatible avec la logique booléenne ('inconsistent' est utilisé ici de manière informelle et formelle dans la logique booléenne) le résultat de ceci serait qu'il serait possible de dériver des assertions logiques inconsistantes (telles que vrai == faux, ou faux == vrai). Le résultat final de ceci serait qu'il n'y aurait aucun cadre logique digne de confiance qui soutiendrait l'utilisation des conditions dans le langage, ce qui le rendrait inutile.

1

En supposant que true et false sont des mots-clés réservés représentant des valeurs booléennes, ils doivent toujours être vrais.

Si le langage ne permet pas de réserver ces mots-clés (ex: anciennes versions de Python), vous pouvez toujours déclarer une variable avec ces noms tels que true == !false est faux.

2

Bien qu'il n'y ait pas de langue où votre expression peut directement être faux, il y a tout à fait un certain nombre de langues où l'expression liée

someTrueValue == !false 

ne tient pas vrai. C et ses variantes, par exemple. Et les variantes Lisp, pour n'en nommer que quelques-unes. Dans ces langues, il y a une valeur fausse (zéro ou nul), tout le reste est considéré comme vrai. Ainsi, !false donnera une de ces vraies valeurs, qui peuvent être différentes de someTrueValue.

1

En plus de true et false étant variables, ! a des significations différentes dans de nombreuses langues. Bien que je ne connaisse aucune langue qui utilise == pour autre chose que (en quelque sorte) une égalité, elle peut être définie par l'utilisateur.

Questions connexes