“진실성”은 합법적 인 프로그래밍 용어입니까?


11

SO는 "진실성"이라는 단어를 사용하여 원래 유형에 관계없이 부울로 평가 될 때 표현의 진실 가치를 의미하는 꽤 많은 질문이 있습니다. 동적 언어에서 매우 유용합니다.

제 질문은 이것이 실제 용어입니까, 그렇다면 Stephen Colbert가 그것을 대중적으로 만들기 전에 그것을 사용 했습니까? 아니면 나중에 방금 채택 했습니까? 이 경우 위에 정의한 용어가 올바른 용어는 무엇입니까?


2
en.wikipedia.org/wiki/ 진실 당신이 원하는 것을 만드십시오. ;->
Jeff Grigg

1
필자는 실제로 참 / 거짓 값에 비해 더 많은 자의 성과 오류 가능성이 있기 때문에 일반적으로 다소 중대하게 의미가 있다고 생각합니다 (스티븐 콜버트에 의해). 그러나 그것에 대한 단어를 갖는 것이 도움이 될 정도로 충분히 일반적이며, "진실성"은 아이디어를 아주 간결하게 이해합니다. 따라서 합법적 인 것으로 간주하지만 합법성은 시간이 지남에 따라 널리 사용되는 방식에 따라 결정되므로이 시점에서 귀하의 질문에 대한 결정적이거나 권위있는 답변은 없습니다.
psr

답변:


4

진실성대한 많은 논쟁있습니다 .

Merriam-Webster 는 다음과 같이 정의합니다.

  1. 진실성 (명사)
    1 : "책이 아닌 내장에서 나오는 진실"(Stephen Colbert, Comedy Central의 "The Colbert Report,"2005 년 10 월)
    2 : "개념보다는 사실을 선호하는 품질 또는 선호하는 것의 질 사실로 알려진 개념 또는 사실 "(American Dialect Society, 2006 년 1 월)

Oxford Dictionaries Online 은 다음과 같이 정의합니다.

명사
[ 대명사 ] 는 반드시 사실 일 필요는 없지만 사실 인 것처럼 보이거나 느껴지는 것의 품질을 비공식적으로
나타냅니다.

기원 :
19 세기 초 ( '진실성'의 의미에서) : 미국의 유머 학자 스티븐 콜버트 (Stephen Colbert)

그것은에 조금 사용 된 유즈넷 스티븐 콜버트 이전에,하지만 일반적으로 같은 즉시 사용 설명 "개념이나 사실 한 진술의 품질 소원 이나 생각 보다는 개념이나 사실보다, 사실로 알려져있는 사실로".

프로그래밍으로 돌아갑니다. 원점에 관계없이 부울 논리 및 진리표를 논의 할 때 "현장에서 진실"이라는 현대의 감각은 대부분 부정확합니다.이 if진술은 확실히 사실이며 그 while진술은까지 거짓 (i > k)입니다. 내 직감이 들어오지 않습니다.

당신이 사용하는 경우 truthiness을 프로그래밍, 가장 가능성이 당신의 의미 드문 19 세기를 사용하고 진실성 , 그리고 모두 명확하게 (그리고 틀림없이 더 정확한)를 사용하는 것이 진실성 하거나 진실을 .

N 그램 :

N 그램

물론, 사용이 변경됨에 따라 영어가 변경되고, 일부 사람들은 프로그래밍에서 진실 을 의미 하기 위해 진실성 을 사용하기 시작했습니다 . 그러나 나는 진실성반대 하여 의미의 모호함 ( "실제 절대적 진실"대 "사실에 관계없이 나의 진실한 느낌")을 피할 것을 권고 한다.


2
나는 개인적으로 항상 진실함이라는 단어를 사용했습니다. 진실성을 읽을 때 나는 그것을 진짜 단어로 간주하지도 않습니다.
Ramhound

@Ramhound : "실제 단어가 아닙니다"와 같은 것은 없습니다. 단어가 인간 간의 의사 소통에 사용될 수 있다면, 그것은 실제 단어입니다.
JacquesB

@ Hugo : Merriam-Webster는 전문 용어에 관해서는 권위가 없습니다. CS에서 많은 단어는 공통 언어와는 다른 의미를 갖습니다.
JacquesB

@JacquesB 문제는 그것이 "실제"인지에 대한 문제이며 콜버트가 대중화하기 전이나 후에 컴퓨팅에 사용 되었기 때문에 표준 사전의 정의가 이러한 문제를 처리하는 데 도움이됩니다.
Hugo

@Hugo : IT 용어가 아닌 일반적인 사전에 정의되어 있기 때문에 기술 용어의 사용이 "분명히 틀렸다"고 말하고 있습니다. 그리고 "진실"이라는 단어를 사용하라는 제안은 대신 "진실성"이라는 용어의 요점을 놓치며 이는 부울이 아닌 값에 적용됩니다.
JacquesB

9

특정 서클 내에서 알려져 있고 허용되는 용어입니다 (예 : JavaScript 부울 비교). 따라서 "실제"라는 용어입니다. 사용되어서 합법적입니다.

이러한 모든 용어는 어딘가에서 온 것입니다. 완전히 형성된 세계에 튀어 나오지 않으며 확립 된 의미로 사용됩니다 (예 : 소프트웨어 버그는 전자 컴퓨터가 기존에 시작되었을 때의 의미를 갖지 못했습니다).

그것이 학문적으로 받아 들여 지든 그것은 다른 문제입니다. 내가 아는 한 부울 값의 퍼지 의미에 대한 공식적인 용어는 없습니다.


@Downvoter-의견이 있으십니까?
오디드

3
실제로 "버그"라는 용어는 현대 컴퓨터 이전에 사용되었습니다. 에디슨은 편지 1787에 사용되었습니다. 당시 공학 문제에 대한 일반적인 용어였습니다. Grace Hopper의 이야기는 그들이 발견 한 버그가 실제로 버그라는 약간의 아이러니입니다.
Jim C

@JimC-충분히 공평하지만 오늘날 사람들이 "버그"라고 말할 때 에디슨 시절과 똑같은 의미는 아닙니다.
오디드

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 평가에 사용되는 합법적 인 용어로 간주합니다. JavaScript에 대한 Douglas Crockford의 저서- 'JavaScript the Good Parts'는 JavaScript 'if'가 '실제'로 평가되는 용어를 정의합니다. 마찬가지로 그는 JavaScript가 거짓으로 평가하는 용어를 '거짓'으로 정의합니다. 또한이 용어를 사용하여 '=='평가가 JavaScript에서 작동하는 방식을 강조합니다 (많은 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, 파이썬도 같은 일을합니다. []부울 등으로 사용될 때 거짓으로 평가됩니다.
Izkata

1
+1 답이되어야합니다. 나는 종종 다양한 데이터 구조의 "진실성"에 대해 스스로 이야기하는 것을 발견했다. 또는 더 자주, 나 자신이 X 아이디어 같은 곳 "X가 falsy이다"라는 찾아 0, None, [], 등.

2

Stephen Colbert가 그것을 사용하기 오래 전에 진실은 한 마디였습니다. 나는 논리 / AI 논문과 일부 물리 논문에서도 그것을 보았지만 스티븐 콜버트의 쇼 이전의 논문에 대한 언급을 찾지 못하는 것을 맹세 할 수있다.


문제는 이제 "콜버트"정의가 인기를 끌고있다 것을, :-) 이전의 작품에서 모호한 참조를 찾을 훨씬 더 어려울 것입니다
딘 하딩을

2006 년 이전 에는 ACM 또는 IEEE 에서 찾을 수 없었습니다 .
Hugo

@DeanHarding Google 도서유즈넷 등 특정 날짜 이전에 단어를 검색하는 방법이 있습니다 .
휴고

2

진실 은 Clojure에서 합법적이고 잘 정의 된 용어로, 조건문에서 참으로 간주되는 값의 속성을 나타냅니다.

따라서 아래의 조건부 함수 value는 "truthy"인 경우에만 호출됩니다.

  (if value
    (some-conditional-function))

유일한 비 truthy 값은 다음 falsenil, 다른 모든 것이 truthy 간주됩니다.

나는 이것에 대한 철학적 정당성이 nil"존재하지 않음"을 의미 할 수 있다고 믿기 때문에 조건문은 가치의 존재를 테스트 할 수있다.

다른 많은 언어들도 조건부 문맥에서 참으로 간주 될 유사한 개념의 값을 가지고 있으므로 결론적으로 나는 진실성이 이런 식으로 사용될 때 합법적 인 프로그래밍 용어로 간주되어야한다고 주장 할 것이다.


1

"진실성"은 내가 다른 언어를 다룰 때 새 언어를 선택할 때 이해할 수있는 것입니다. 내 홈 기반 언어 인 Perl에서 문자열 "0"은 false입니다. 많은 언어에서, 그것은 내용을 가진 문자열이므로 사실입니다. 일부 언어에서는 빈 문자열 ""이 false이고 일부 언어가 true입니다.

언어 디자이너가 진실성에 대해 선택한 내용을 이해하면 자신의 생각에 대해 많은 것을 알 수 있으며 언어의 개념적 세계에 빠져 들기 시작합니다.

우리가 그것을 "진실성"이라고 쓰든 다른 용어를 사용하든 (Camel Book에서 그 장의 헤더는 "진실이란 무엇인가?") 프로그래머들은 "참과 거짓"이라는 절대적인 가치의 다양한 가치를 파악하고있었습니다. 콜버트가 와서 공개 담론에서 "참"의 구부러짐을 지적하기 훨씬 전에.


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에 대한 그러한 비율의 신념을 설명하기에 완벽하게 유효한 방법입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.