「真実」は合法的なプログラミング用語ですか?


11

SOには「真偽」という言葉を使用して、元の型に関係なく、ブール値として評価される式の真理値を意味する質問かなりあります。動的言語では非常に便利です。

私の質問は、これは本当の用語ですか、もしそうなら、スティーブン・コルバートがそれを普及させる前にそれを使用していましたか?それとも、後でそれを採用しただけですか?その場合、上記で定義した正しい用語は何ですか?


2
en.wikipedia.org/wiki/Truthinessあなたが望むものを作りましょう。;->
ジェフグリッグ

1
実際の真/偽の値と比較して、意性があり、物事が間違っている可能性が高いため、通常は多少軽ly的です(確かにStephen Colbertによる)。しかし、それを表すのに役立つことは十分に一般的であり、「真実」はアイデアをかなり簡潔に理解します。だから私はそれを合法だと思うだろうが、合法性は時間の経過とともに一般的な用法によって決定されるので、この時点ではあなたの質問に対する決定的または権威ある答えはない。
psr

回答:


4

たくさんのあります議論オーバーtruthinessが

Merriam-Websterは次のように定義しています:

  1. 真実性(名詞)
    1:「本ではなく、腸に由来する真実」(コメディセントラルの「コルバートレポート」、2005年10月)、
    2真実であることが知られている概念または事実」(2006年1月、アメリカ方言協会)

Oxford Dictionaries Onlineはそれを次のように定義しています:

noun
[ mass noun ] 必ずしも真実であるとは限らないが、見た目または真実であると感じられることの質を非公式に
する。

起源
19世紀初頭(ある意味「真実」):米国のユーモア作家、スティーブンコルバートによって現代の意味で造られた

それは上の少し使用されたUsenetのスティーブン・コルベールに先立っを、通常のような、とすぐに使用されるように説明した「概念や事実1つの明記の品質願いをと考えているという概念や事実よりも、真であることが知られている真であると」。

プログラミングに戻ります。起源に関係なく、ブール論理と真理値表を議論するとき、この「現代からの真実」は、ほとんどの場合、明らかに間違っています。このif陳述は間違いなく真であり、そのwhile陳述はまで(i > k)です。私の腸の感覚はそれに入らない。

あなたが使用している場合truthinessをプログラミングで、最も可能性の高いあなたは、の意味珍しい19世紀を使用している真実、それは両方の明確な(そして間違いなく、より正確に)使用することです真実または単に真実を

Ngram

Ngram

もちろん、使用法が変わると英語も変わります。一部の人々は、プログラミングで真実を意味するために真実を使用し始めています。ただし、意味のあいまいさを避けるために、真実性に反対することをお勧めします(「本当の絶対的な真実」対「事実に関係なく、真実の私の直感」)。


2
私は個人的に常に真実性という言葉を使ってきました。真実性を読むとき、私はそれを本当の言葉とさえ考えません。
ラムハウンド

@Ramhound:「本当の言葉ではない」というものはありません。単語が人間間のコミュニケーションに使用できる場合、それは実際の単語です。
ジャックB

@Hugo:Merriam-Websterは技術用語に関しては信頼できません。多くの単語は、CSでは一般的な言語とは異なる意味を持ちます。
ジャックB

問題は「実用語」であるかどうかであり、コルバートが普及する前または後にコンピューティングで使用されていたため、標準辞書の定義がこれらを処理するのに役立ちます。
ヒューゴ

@Hugo:技術用語の使用は、一般的な(IT固有ではない)辞書で定義されているため、「明らかに正しくない」と述べています。そして、代わりに「真実」という言葉を使用するというあなたの提案は、非真偽値に適用される「真実性」という用語のすべてのポイントを見逃しています。
ジャックB

9

これは、特定のサークル内で既知で受け入れられる用語です(JavaScriptのブール比較など)。そのため、これは「実際の」用語です。使用されるため、それは合法的になります。

そのような用語はすべてどこかから来ています-彼らは完全に形成された確立された意味で世界に飛び込むことはありません(例えば-ソフトウェアのバグは、電子コンピューターが存在し始めたときの意味を持ちませんでした)。

それが学術的に受け入れられているかどうか-それは別の問題です。私が知る限り、ブール値のこのあいまいな意味の正式な用語はありません。


@Downvoter-コメントしてください
-Oded

3
実際、問題としての「バグ」という用語は、最新のコンピューターの前に使用されていました。エジソンは手紙1787で使用していました。それは当時の技術的な問題の一般的な用語でした。Grace Hopperのストーリーは、彼らが見つけたバグが本当にバグだったという皮肉な話です。
ジムC

@JimC-十分ですが、それでも、今日人々が「バグ」と言うとき、彼らはエジソンの時代と同じことを意味しません。
オデッド

4
Edisonは、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の評価で使用されている正当な用語として真理を考えています。ダグラス・クロックフォードのJavaScriptに関する本-「JavaScript the Good Parts」は、JavaScriptの「if」が「真」であると評価する用語を定義しています。同様に、JavaScriptがfalseと評価する用語を「偽」と定義しています。また、この用語を使用して、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も同じことを行います。 []ブール値として使用された場合などにfalseと評価されます
。– Izkata

1
+1これが答えです。私はしばしば、さまざまなデータ構造の「真実性」について語っています。またはより頻繁に、私は自分自身がXのようなアイデアです「Xはfalsyである」と言って見つける0None[]、など。

2

真実性は、スティーブン・コルバートがそれを使用するずっと前から言葉でした。ロジック/ AIの論文や一部の物理の論文でも見たことがあると断言できましたが、スティーブンコルバートのショーよりも前のものへの言及は見当たりません。


問題は、「コルバート」の定義が一般的になった今、古い作品であいまいな参照を見つけるのがずっと難しくなることです:
ディーンハーディング

2006
ヒューゴ

@DeanHarding特定の日付より前に単語を検索する方法があります。たとえば、GoogleブックスUsenetを使用します
ヒューゴ

2

真実性は、Clojureで正当かつ明確に定義された用語であり、条件付きステートメントで真と見なされる値のプロパティを指します。

したがって、以下の条件関数valueは、「真」の場合にのみ呼び出されます

  (if value
    (some-conditional-function))

唯一の非真実の値はとでfalseありnil、他のすべては真実と見なされます。

これに対する哲学的正当性は、nil「存在しない」ことを意味すると考えられるため、条件文は値の存在をテストできると信じています。

他の多くの言語にも、条件付きコンテキストで真と見なされる類似した値の概念があります。したがって、結論として、このように使用される場合、真理は正当なプログラミング用語と見なされるべきだと主張します。


1

「真実」とは、新しい言語を取り上げるときに理解していることを確認するものです。私のホームベースのPerlの第一言語では、文字列「0」は偽です。多くの言語では、これはコンテンツを含む文字列であり、したがって真です。一部の言語では、空の文字列 ""はfalseであり、一部の言語ではtrueです。

言語設計者が真実性について行った選択を理解することで、自分の考えについて多くのことを知ることができ、言語の概念的な世界にあなたを浸し始めます。

「真実」と綴るか、他の用語(キャメルブックのその章のヘッダーは「真実」と思います)を使用するかどうかにかかわらず、プログラマーは「真と偽」と呼ばれる絶対的なもののさまざまな値を把握していましたコルバートがやって来て、公の言説における「真実」の曲げを指摘するずっと前に。


0

もう一度お聞きします。「本当の用語」とは何ですか?

(多かれ少なかれ)同じことを意味する複数の人が使用する場合、人間が使用する単語はすべて「本物」です。すべての言語は常に進化しており、プログラマーの言語も進化しています。

たとえば、Rubyでは、rspecテストフレームワークは現在ではxyz.should be_truthyなくを好んでいxyz.should be_trueます。またはのxyz.should be_falsey代わりにxyz.should be_false。もちろん、後者の代わりに彼らは選んだかもしれませんxyz.should be_wrong。しかし、彼らはそうしなかったので、「偽り」が用語かどうかを尋ねることもできます。

今です。やめて 少なくともこれらの用語を使用するコミュニティでは。弁護士や医師に尋ねないでください。:)

「一般大衆が真実とは何かを直観的に知っているのか」と尋ねるつもりなら、答えはおそらく「いいえ」でしょう。


1
(ほぼ)誰もが知っているように、その虚数部が偽である場合にのみ、何かが本物です。
ベンフォークト

-3

部分的なデータが与えられた場合、ブール文が真になる可能性を数学的に決定するシステムを作成しました。Xつまり、Xが真であることをしっかりと確立するのに十分なデータがまだない場合、73%の真の可能性があると判断できました。「真実」は、Xに対するそのようなパーセンテージの信念を記述するための完全に有効な方法です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.