У SO довольно много вопросов, использующих слово «истинность» для обозначения значения истинности выражения, когда оно оценивается как логическое значение, независимо от его первоначального типа. Это очень полезно в динамических языках.
Итак, мой вопрос, является ли это реальным термином, и если да, то использовали ли мы его до того, как Стивен Колберт сделал его популярным? Или мы просто приняли это позже? В таком случае, каков правильный термин с определением, которое я дал выше?
terminology
Tesserex
источник
источник
Ответы:
Есть много споров по поводу правдивости .
Merriam-Webster определяет это как:
1: «правда, которая исходит из кишки, а не из книг» (Стивен Колберт, Comedy Central, «The Colbert Report», октябрь 2005 г.)
2: «качество предпочтения понятий или фактов, которые каждый желает быть правдой, а не концепции или факты, известные как истинные "(American Dialect Society, январь 2006 г.)
Оксфордские словари онлайн определяют это как:
Это использовалось немного в Usenet до Стивена Колберта, но обычно объяснялось, как только использовалось, например, «качество формулирования понятий или фактов, которые каждый желает или считает верными, а не понятий или фактов, которые известны как истинные».
Вернуться к программированию. Независимо от происхождения, это современное чувство «истины изнутри, даже если и не истинно» в большинстве случаев явно неверно при обсуждении булевой логики и таблиц правды: это
if
утверждение определенно верно, и этоwhile
утверждение ложно до тех пор, пока(i > k)
. Мое внутреннее чувство не входит в это.Если вы используете правдивость в программировании, скорее всего, вы используете редкий смысл правдивости 19-го века , и было бы яснее (и, возможно, более правильно) использовать правдивость или просто правду .
Нграм :
Конечно, английский меняется по мере использования, и некоторые люди начали использовать правду, чтобы означать правду в программировании. Однако я бы посоветовал против правдивости избегать любой двусмысленности смысла («настоящая абсолютная истина» против «моего интуитивного чувства истины, независимо от фактов»).
источник
Этот термин известен и приемлем в определенных кругах (например, логические сравнения JavaScript). Как таковой, это «настоящий» термин. Благодаря использованию он становится законным.
Все такие термины происходят откуда-то - они не попадают в мир полностью сформированный и с устоявшимися значениями (например, ошибки в программном обеспечении не имели того значения, которое они имеют сейчас, когда электронные компьютеры только начали существовать).
Будь это академически принято - это другой вопрос. Насколько я знаю, нет никакого формального термина для этого нечеткого значения булевых значений ..
источник
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.
Звучит очень похоже на ошибки в современном программном обеспечении.Я считаю истину законным термином, используемым для оценки JavaScript. Книга Дугласа Крокфорда о JavaScript - «JavaScript - хорошие части» определяет термины, которые JavaScript «если» оценивает как истинные, чтобы быть «правдивыми». Точно так же он определяет термины, которые JavaScript оценивает как ложные, как «ложь». Он также использует этот термин, чтобы подчеркнуть то, как оценка '==' работает в JavaScript (что отличается от того, как многие пользователи JavaScript считают, что это работает).
Из Крокфорда «Элементы стиля JavaScript»
В этом контексте термин является законным и полезным.
В качестве дополнительной иллюстрации истинного и ложного в этом контексте эти случаи являются иллюстративными.
источник
[]
оценивается как ложное при использовании в качестве логического значения и т. д.0
,None
,[]
и так далее.Истина была словом задолго до того, как Стивен Кольбер использовал его. Я мог бы поклясться, что видел это в работах по логике / ИИ, а также в некоторых работах по физике, но, похоже, не могу найти ссылку на ту, которая предшествовала шоу Стивена Колберта.
источник
Истина - это законный и четко определенный термин в Clojure, где он относится к свойству значения, считающегося истинным в условном утверждении.
Поэтому приведенная ниже условная функция будет вызываться только в том случае, если
value
она «истинна»Единственными неверными ценностями являются
false
иnil
все остальное считается правдивым.Я полагаю, что философское обоснование этого состоит в том, что
nil
можно принять значение «не существует», поэтому условное утверждение может проверить наличие значения.Многие другие языки также имеют аналогичную концепцию значений, которая будет считаться истинной в условном контексте, поэтому в заключение я бы сказал, что да, правдивость следует рассматривать как законный термин программирования, когда он используется таким образом.
источник
«Правдивость» - это то, что я понимаю, когда понимаю новый язык, поскольку все они имеют дело с ним по-разному. На моем родном языке Perl строка «0» является ложной. Во многих языках это строка, которая имеет содержание и поэтому является истинной. В некоторых языках пустая строка "" ложна, а в некоторых - правда.
Понимание выбора, сделанного языковыми дизайнерами в отношении правдивости, многое говорит об их мышлении и начинает погружать вас в концептуальную вселенную языка.
Независимо от того, написали ли мы это «правдивость» или использовали какой-то другой термин (я думаю, что заголовок этой главы в «Книге верблюдов» «Что такое истина?»), Программисты имели контроль над различными значениями абсолютной вещи, называемой «истина и ложь». задолго до того, как пришел Колберт и указал на изгиб «истины» в публичном дискурсе.
источник
Позвольте мне спросить вас назад: что такое «реальный термин»?
Любое слово, которое люди используют, является «реальным», когда используется несколькими людьми, означая (более или менее) одно и то же. Все языки постоянно развиваются, как и язык программиста.
Например, в Рубине, то RSpec система тестирования в настоящее время предпочитает
xyz.should be_truthy
вместоxyz.should be_true
. Илиxyz.should be_falsey
вместоxyz.should be_false
. Конечно, вместо последнего они могли бы выбратьxyz.should be_wrong
. Но они этого не сделали, поэтому мы можем также спросить, является ли термин «ложь» термином.Теперь это. Прочь По крайней мере, в сообществах, которые используют эти термины. Не спрашивайте своего адвоката или врача. :)
Если вам нужно спросить «интуитивно ли широкая публика знает, что такое Истина», то ответ, вероятно, «нет».
источник
Я написал систему, которая определяла бы (математическую) вероятность того, что логическое утверждение истинно, с учетом частичных данных. Т.е. мы могли бы определить, что существует 73% шансов
X
быть правдой, если у нас еще не было достаточно данных, чтобы твердо установить, что Х был правдой. «Истина» была бы совершенно верным способом описать такой процент веры в X.источник