SO tiene bastantes preguntas utilizando la palabra "veracidad" para significar el valor de verdad de una expresión, cuando se evalúa como booleana, independientemente de su tipo original. Es muy útil en lenguajes dinámicos.
Entonces mi pregunta es, ¿es este un término real, y si es así, lo usamos antes de que Stephen Colbert lo hiciera popular? ¿O simplemente lo adoptamos después? En ese caso, ¿cuál es el término correcto con la definición que di anteriormente?
terminology
Tesserex
fuente
fuente
Respuestas:
Hay mucho debate sobre la veracidad .
Merriam-Webster lo define como:
verdad (sustantivo) 1: "verdad que viene del intestino, no libros" (Stephen Colbert, "The Colbert Report" de Comedy Central, octubre de 2005)
2: "la calidad de preferir conceptos o hechos que uno desea ser verdad, en lugar de conceptos o hechos que se sabe que son verdaderos "(American Dialect Society, enero de 2006)
Oxford Dictionaries Online lo define como:
Se usó un poco en Usenet antes de Stephen Colbert, pero generalmente se explicaba tan pronto como se usaba, como "la calidad de expresar conceptos o hechos que uno desea o cree que son ciertos, en lugar de conceptos o hechos que se sabe que son verdaderos".
De vuelta a la programación. Independientemente del origen, este sentido moderno de "verdad desde el intestino, incluso si no es verdadero" es claramente incorrecto la mayor parte del tiempo cuando se discute la lógica booleana y las tablas de verdad: esta
if
afirmación es definitivamente cierta, y esawhile
afirmación es falsa hasta(i > k)
. Mi instinto no entra en eso.Si está utilizando la veracidad en la programación, lo más probable es que esté usando el raro significado de veracidad del siglo XIX , y sería más claro (y posiblemente más correcto) usar la veracidad o simplemente la verdad .
Ngram :
Por supuesto, el inglés cambia a medida que cambia el uso, y algunas personas han comenzado a usar la veracidad para significar la verdad en la programación. Sin embargo, desaconsejaría la veracidad para evitar cualquier ambigüedad de significado ("verdad absoluta real" frente a "mi instinto de verdad, independientemente de los hechos").
fuente
Es un término conocido y aceptable dentro de ciertos círculos (por ejemplo, comparaciones booleanas de JavaScript). Como tal, es un término "real". En virtud de ser utilizado se convierte en legítimo.
Todos estos términos provienen de algún lugar: no aparecen en el mundo completamente formados y con un significado establecido (por ejemplo, los errores de software no tenían el significado que tenían ahora cuando las computadoras electrónicas comenzaron a existir).
Si es aceptado académicamente, ese es un asunto diferente. Hasta donde sé, no existe un término formal para este significado difuso de los valores booleanos.
fuente
It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that 'Bugs' — as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.
mí me suena muy similar a los errores de software modernos.Considero verdad como un término legítimo en uso sobre la evaluación de JavaScript. El libro de Douglas Crockford sobre JavaScript: 'JavaScript the Good Parts' define los términos que JavaScript 'si' evalúa como verdaderos para ser 'veraces'. Igualmente, define los términos que JavaScript evalúa como falsos como 'falsos'. También usa el término para resaltar la forma en que funciona la evaluación '==' en JavaScript (que es diferente a la forma en que muchos usuarios de JavaScript parecen creer que funciona).
De los elementos del estilo JavaScript de Crockford
En este contexto, el término es legítimo y útil.
Como otra ilustración de lo verdadero y lo falso en este contexto, estos casos son ilustrativos.
fuente
[]
se evalúa a falso cuando se utiliza como un valor booleano, etc.0
,None
,[]
, y así sucesivamente.La verdad ha sido una palabra mucho antes de que Stephen Colbert la haya usado. Podría jurar que lo he visto en documentos de lógica / IA, y también en algunos documentos de física, pero parece que no puedo encontrar una referencia a uno que sea anterior al programa de Stephen Colbert.
fuente
Verdad es un término legítimo y bien definido en Clojure, donde se refiere a la propiedad de un valor que se considera verdadero en una declaración condicional.
Entonces, la función condicional a continuación solo se llamará si
value
es "verdadera"Los únicos valores no verídicos son
false
ynil
todo lo demás se considera veraz.Creo que la justificación filosófica para esto es que
nil
se puede tomar como que significa "no existe", por lo que la declaración condicional puede probar la existencia de un valor.Muchos otros lenguajes también tienen un concepto similar de valores que se considerarán verdaderos en un contexto condicional, por lo que en conclusión diría que sí, la veracidad debería considerarse como un término de programación legítimo cuando se usa de esta manera.
fuente
La "verdad" es algo que me aseguro de entender cuando estoy aprendiendo un nuevo idioma, ya que todos lo tratan de manera diferente. En mi primer idioma base de Perl, la cadena "0" es falsa. En muchos idiomas, esa es una cadena que tiene contenido y, por lo tanto, es verdadera. En algunos idiomas, la cadena vacía "" es falsa, y en algunos es verdadera.
Comprender las elecciones que los diseñadores de lenguaje tomaron sobre la veracidad le dice mucho sobre su pensamiento y comienza a sumergirlo en el universo conceptual del lenguaje.
Si lo deletreamos "veracidad" o si usamos algún otro término (creo que el encabezado de ese capítulo en el Libro Camel es "¿Qué es la verdad?"), Los programadores tenían un control sobre los valores variables de lo absoluto llamado "verdadero y falso" mucho antes de que Colbert apareciera y señalara la inclinación de "verdadero" en el discurso público.
fuente
Déjame preguntarte: ¿qué es un "término real"?
Cualquier palabra que los humanos usen es "real" cuando la usan varias personas que significan (más o menos) lo mismo. Todos los lenguajes evolucionan constantemente, y también el lenguaje del programador.
Por ejemplo, en Ruby, el marco de prueba rspec hoy
xyz.should be_truthy
en día prefiere en lugar dexyz.should be_true
. O enxyz.should be_falsey
lugar dexyz.should be_false
. Por supuesto, en lugar de este último, podrían haber elegidoxyz.should be_wrong
. Pero no lo hicieron, así que también podemos preguntarnos si "falsedad" es un término.Ahora es. Rematar Al menos en las comunidades que usan estos términos. No le pregunte a su abogado o médico. :)
Si tiene la intención de preguntar "¿el público en general sabe intuitivamente qué es la Verdad", entonces la respuesta es probablemente "no".
fuente
He escrito un sistema que determinaría la posibilidad (matemática) de que una declaración booleana sea verdadera, dados los datos parciales. Es decir, podríamos determinar que había un 73% de posibilidades de
X
ser cierto, si aún no contáramos con datos suficientes para establecer firmemente que X era cierto. "Verdad" sería una forma perfectamente válida de describir tal porcentaje de creencia en X.fuente