“真实性”是合法的编程术语吗?


11

因此,有很多问题使用“真实性”一词来表示表达式的真值,无论其原始类型如何,当将其评估为布尔值时。在动态语言中非常有用。

所以我的问题是,这是一个真实的术语吗?如果这样的话,我们是否在斯蒂芬·科尔伯特(Stephen Colbert)流行之前使用它?还是我们后来才采用它?在这种情况下,我上面给出的定义的正确术语是什么?



1
我认为这通常是贬义的词(肯定是斯蒂芬·科尔伯特(Stephen Colbert)),因为与真正的/错误的值相比,有更多的任意性和出错的机会更多。但是用一个词来帮助它是很常见的,“真实性”非常简洁地传达了这个想法。因此,我认为这是合法的,但是合法性取决于一段时间以来的流行用法,因此,在这一点上,您的问题尚无确切或权威的答案。
psr

Answers:


4

有很多的争论感实性

Merriam-Webster将其定义为:

  1. 真实性(名词)
    1:“真理来自内心,而不是书本”(斯蒂芬·科尔伯特,喜剧中心的《科尔伯特报告》,2005年10月)
    2:“更喜欢人们希望真实的概念或事实,而不是真实的想法概念或事实为真”(美国方言协会,2006年1月)

牛津在线词典将其定义为:

名词
[ mass noun ] 非正式
的,看起来或被感知为真实的质量,即使不一定是真实的。

起源
19世纪初(在“真实”的意义上):由美国幽默家斯蒂芬·科尔伯特(Stephen Colbert)在现代意义上创造

它在斯蒂芬·科尔伯特(Stephen Colbert)之前曾在Usenet上使用过一点,但通常在使用后立即加以解释,例如“陈述一个希望相信是真实的概念或事实的质量,而不是已知的真实概念或事实”。

回到编程。无论起源如何,这种现代意义上的“即使在事实都不成立的情况下,也都来自真相”在大多数时候讨论布尔逻辑和真值表时显然是不正确的:该if语句绝对是正确的,而while直到为止该语句都是错误的(i > k)。我没有直觉。

如果您在使用感实性编程,很有可能你正在使用的19世纪罕见的意思真实性,这将是双方更清晰的(而且可能更正确)使用真实或只是真相

Ngram

Ngram

当然,英语变化的使用变化,有的人已经开始使用感实性是指真理的节目。但是,我建议不要使用真实性,以避免任何含糊的含义(“真实的绝对真实”与“我的内心对真实的感觉,无论事实如何”)。


2
我个人一直使用真实性一词,当我读到真实性时,我什至都不认为这是一个真实的词。
Ramhound,2011年

@Ramhound:没有“不是一个真实的词”这样的东西。如果一个单词可以用于人与人之间的交流,那它就是一个真实的单词。
雅克·B '16

@Hugo:就技术术语而言,Merriam-Webster并不权威。CS中的许多单词与普通语言中的含义不同。
雅克·B '16

@JacquesB问题在于它是否是一个“真实术语”,它是在Colbert普及之前还是之后在计算中使用的,因此标准词典的定义有助于解决这些问题。
雨果

@Hugo:您是在说技术术语的使用“显然不正确”,原因是它是在通用(非IT特定)词典中定义的。而您使用“真实”一词的建议则忽略了术语“真实性”的全部要点,该术语适用于非布尔值。
JacquesB '16

9

这个术语在某些圈子内是已知的并且可以接受的(例如JavaScript布尔比较)。因此,这是一个“真实”术语。通过使用它变得合法。

所有这些术语都来自某个地方-它们并没有完全融入世界并具有确定的含义(例如-当电子计算机刚刚开始存在时,软件错误就没有现在的含义)。

无论是学术上接受的-都是另一回事。据我所知,布尔值的模糊含义尚无正式术语。


@Downvoter-喜欢发表评论吗?
奥德

3
实际上,现代计算机之前已经使用术语“ bug”作为问题。爱迪生在1787年的一封信中使用了它。那时,它是工程问题的通用术语。Grace Hopper的故事有点讽刺意味,他们发现的错误确实是一个错误。
Jim C

@JimC-足够公平,但是,尽管今天人们说“臭虫”,他们的意思和爱迪生时代的意思不同。
Oded

4
爱迪生在1878年写道: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.对我来说,听起来很像现代软件错误。
雨果

8

我认为真理是JavaScript评估中使用的合法术语。道格拉斯·克罗克福德(Douglas Crockford)关于JavaScript的书-“ JavaScript的优良部分”定义了JavaScript“如果”评估为“真实”的术语。同样,他将JavaScript评估为false的术语定义为“ falsy”。他还使用该术语来强调'=='评估在JavaScript中的工作方式(这与许多JavaScript用户似乎认为它起作用的方式不同)。

摘自Crockford的JavaScript风格元素

==运算符不应用于将值与true进行比较,因为它确实会强制转换。如果我们的目的是确定dwsv.checked是否为布尔值true,则必须使用===运算符。如果我们只关心值是真实的(而不是虚假的),那么最好根本不使用相等运算符。

例如,由于类型为强制,1 == true为true,但是1 === true为false。==运算符可以隐藏类型错误。

在这种情况下,该术语既合法又有用。

作为在此上下文中对是非的进一步说明,这些情况是说明性的。

'' == '0' // false    
0 == '' // true
0 == '0' // true

false == 'false' // false
false == '0' // true

false == undefined // false
false == null // false
null == undefined // true

' \t\r\n ' == 0 // true

+ 1,Python做同样的事情。 []作为一个布尔等使用时被评估为假
Izkata

1
+1这应该是答案。我经常发现自己在谈论各种数据结构的“真实性”。或更频繁,我发现自己说:“X是falsy”,其中X是一样的想法0None[],等等。

2

在斯蒂芬·科尔伯特(Stephen Colbert)使用诚实之前,诚实已经是一个词。我可以发誓,我已经在逻辑/人工智能论文和一些物理学论文中看到了它,但是似乎找不到对斯蒂芬·科尔伯特的展览之前的参考。


问题是,既然“科尔伯特”的定义已经流行起来,在较老的作品中很难找到晦涩的参考文献将变得更加困难:-)
迪恩·哈丁

我在2006
Hugo

@DeanHarding提供了在给定日期之前搜索单词的方法,例如使用Google BooksUsenet
雨果

2

感实性是Clojure的,合法的和明确定义的术语它指的是在一个条件语句视为真值存在的财产。

因此,以下条件函数仅在value为“真” 时才被调用

  (if value
    (some-conditional-function))

唯一不真实的值是falsenil,其他所有内容都视为真实。

我相信这一点的哲学上的理据是nil可以被认为是“不存在”,因此条件语句能够测试值的存在。

许多其他语言也具有类似的值概念,在条件上下文中这些值将被视为真,因此总而言之,我认为是的,当以这种方式使用真实性时,应将其视为合法的编程术语。


1

当我选择一种新语言时,我确保我能理解“真实性”,因为他们对语言的处理方式有所不同。在我的Perl家庭基础第一语言中,字符串“ 0”为false。在许多语言中,这是一个具有内容的字符串,因此是正确的。在某些语言中,空字符串“”为false,在某些情况下为true。

理解语言设计师对真实性所做的选择,可以使您对他们的想法有很多了解,并开始将您带入语言的概念领域。

无论我们将其拼写为“真实性”还是使用其他术语(我认为骆驼书中该章的标题为“ What Is Truth?”),程序员都可以掌握各种绝对值的真实性,即“真与假”。早在科尔伯特(Colbert)出现并指出公共话语中“真实”的弯曲之前。


0

让我再问一遍:什么是“真实术语”?

当多个人使用(或多或少)相同的事物时,人类使用的任何单词都是“真实的”。所有语言都在不断发展,程序员的语言也在不断发展。

例如,在Ruby中,如今的rspec测试框架更喜欢使用xyz.should be_truthy而不是xyz.should be_true。或者xyz.should be_falsey代替xyz.should be_false。当然,他们本来可以选择后者而不是后者xyz.should be_wrong。但是他们没有,所以我们也可以问“假”是否是一个术语。

现在它是。好吧 至少在使用这些术语的社区中。不要问你的律师或医生。:)

如果您要问“普通民众凭直觉知道真相是什么”,那么答案可能是“否”。


1
几乎每个人都知道,只有当虚构部分为假时,事物才是真实的
Ben Voigt

-3

我编写了一个系统,该系统可以在给定部分数据的情况下确定布尔语句为真的(数学)机会。也就是说X,如果我们还没有足够的数据来可靠地确定X为真,那么我们可以确定有73%的可能性为真。“真实性”将是描述这种X百分比信念的完美有效方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.