SO memiliki beberapa pertanyaan menggunakan kata "kebenaran" yang berarti nilai kebenaran ekspresi, ketika dievaluasi sebagai boolean, terlepas dari jenis aslinya. Ini sangat berguna dalam bahasa dinamis.
Jadi pertanyaan saya adalah, apakah ini istilah yang nyata, dan jika demikian apakah kita menggunakannya sebelum Stephen Colbert membuatnya populer? Atau apakah kita baru saja mengadopsinya? Dalam hal itu, apa istilah yang benar dengan definisi yang saya berikan di atas?
terminology
Tesserex
sumber
sumber
Jawaban:
Ada banyak perdebatan tentang kebenaran .
Merriam-Webster mendefinisikannya sebagai:
1: "kebenaran yang berasal dari usus, bukan buku" (Stephen Colbert, Comedy Central "The Colbert Report," Oktober 2005)
2: "kualitas konsep atau fakta yang dipilih seseorang yang ingin menjadi kenyataan, daripada konsep atau fakta yang diketahui benar "(American Dialect Society, Januari 2006)
Kamus Oxford Online mendefinisikannya sebagai:
Itu digunakan sedikit pada Usenet sebelum Stephen Colbert, tetapi biasanya dijelaskan segera setelah digunakan, seperti "kualitas menyatakan konsep atau fakta yang seseorang inginkan atau yakini benar, daripada konsep atau fakta yang diketahui benar".
Kembali ke pemrograman. Terlepas dari asalnya, pengertian modern "kebenaran dari usus ini, bahkan jika tidak benar" sebagian besar jelas tidak benar ketika membahas logika Boolean dan tabel kebenaran:
if
pernyataan ini benar, danwhile
pernyataan itu salah sampai(i > k)
. Perasaan saya tidak masuk ke dalamnya.Jika Anda menggunakan kebenaran dalam pemrograman, kemungkinan besar Anda menggunakan makna kejujuran abad ke-19 yang langka , dan akan lebih jelas (dan bisa dibilang lebih benar) untuk menggunakan kebenaran atau hanya kebenaran .
Ngram :
Tentu saja, bahasa Inggris berubah seiring perubahan penggunaan, dan beberapa orang sudah mulai menggunakan kebenaran untuk berarti kebenaran dalam pemrograman. Namun, saya akan menyarankan agar tidak jujur untuk menghindari ambiguitas makna ("kebenaran absolut nyata" vs "perasaan kebenaran saya, terlepas dari fakta").
sumber
Ini adalah istilah yang dikenal dan dapat diterima di kalangan tertentu (misalnya perbandingan JavaScript Boolean). Dengan demikian, ini adalah istilah "nyata". Karena digunakan itu menjadi sah.
Semua istilah seperti itu datang dari suatu tempat - mereka tidak muncul ke dunia sepenuhnya terbentuk dan dengan makna yang mapan (misalnya - bug perangkat lunak tidak memiliki arti yang mereka miliki sekarang ketika komputer elektronik baru mulai ada).
Apakah itu diterima secara akademis - itu masalah lain. Sejauh yang saya tahu tidak ada istilah formal untuk makna fuzzy dari nilai boolean ini.
sumber
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.
Kedengarannya sangat mirip dengan bug perangkat lunak modern bagi saya.Saya menganggap kebenaran sebagai istilah yang sah untuk digunakan dalam evaluasi JavaScript. Buku Douglas Crockford tentang JavaScript - 'JavaScript Bagian yang Baik' mendefinisikan istilah yang dievaluasi oleh JavaScript 'jika' benar sebagai 'benar'. Sama halnya ia mendefinisikan istilah yang dievaluasi oleh JavaScript menjadi false sebagai 'falsy'. Dia juga menggunakan istilah ini untuk menyoroti cara evaluasi '==' bekerja di JavaScript (yang berbeda dengan cara yang tampaknya diyakini oleh banyak pengguna JavaScript).
Dari The Elements of JavaScript Style karya Crockford
Dalam konteks ini istilah ini sah dan bermanfaat.
Sebagai ilustrasi lebih lanjut tentang benar dan salah dalam konteks ini, kasus-kasus ini bersifat ilustratif.
sumber
[]
dievaluasi salah ketika digunakan sebagai boolean, dll.0
,None
,[]
, dan sebagainya.Kebenaran telah menjadi kata lama sebelum Stephen Colbert menggunakannya. Aku bersumpah aku pernah melihatnya di makalah logika / AI, dan di beberapa makalah fisika juga, tapi sepertinya tidak bisa menemukan referensi ke yang mendahului acara Stephen Colbert.
sumber
Kebenaran adalah istilah yang sah dan didefinisikan dengan baik di Clojure, di mana itu merujuk pada properti dari nilai yang dianggap benar dalam pernyataan bersyarat.
Jadi fungsi kondisional di bawah ini hanya akan dipanggil jika
value
"benar"Satu-satunya nilai yang tidak benar adalah
false
dannil
, semua yang lain dianggap benar.Saya percaya pembenaran filosofis untuk ini adalah bahwa
nil
dapat diartikan sebagai "tidak ada", sehingga pernyataan bersyarat dapat menguji keberadaan suatu nilai.Banyak bahasa lain juga memiliki konsep nilai yang mirip yang akan dianggap benar dalam konteks kondisional, jadi sebagai kesimpulan saya berpendapat bahwa ya, kebenaran harus dianggap sebagai istilah pemrograman yang sah ketika digunakan dengan cara ini.
sumber
"Kebenaran" adalah sesuatu yang saya pastikan saya mengerti ketika saya mengambil bahasa baru, karena mereka semua mengatasinya secara berbeda. Dalam bahasa pertama home-base saya di Perl, string "0" salah. Dalam banyak bahasa, itu adalah string yang memiliki konten dan karenanya benar. Dalam beberapa bahasa string kosong "" salah, dan dalam beberapa bahasa itu benar.
Memahami pilihan yang dibuat oleh perancang bahasa tentang kebenaran memberitahu Anda banyak hal tentang pemikiran mereka, dan mulai mencelupkan Anda ke dalam dunia konseptual bahasa.
Apakah kita mengeja itu "kebenaran" atau menggunakan istilah lain (saya pikir tajuk untuk bab dalam Buku Unta adalah "Apa itu Kebenaran?"), Programmer memiliki pegangan pada berbagai nilai dari hal absolut yang disebut "benar dan salah" jauh sebelum Colbert datang dan menunjukkan sikap "benar" dalam wacana publik.
sumber
Izinkan saya bertanya kembali: apa itu istilah "nyata"?
Setiap kata yang digunakan manusia adalah "nyata" ketika digunakan oleh banyak orang yang berarti (kurang lebih) hal yang sama. Semua bahasa terus berkembang, demikian pula bahasa pemrogram.
Misalnya, di Ruby, kerangka pengujian rspec saat ini lebih suka
xyz.should be_truthy
daripadaxyz.should be_true
. Atauxyz.should be_falsey
bukannyaxyz.should be_false
. Tentu saja, bukannya yang terakhir yang bisa mereka pilihxyz.should be_wrong
. Tapi mereka tidak, jadi kita juga bisa bertanya apakah "kepalsuan" adalah sebuah istilah.Sekarang sudah. Kind off. Setidaknya di komunitas yang menggunakan istilah ini. Jangan tanya pengacara atau dokter Anda. :)
Jika Anda bermaksud bertanya "apakah masyarakat umum secara intuitif tahu apa itu Kebenaran", maka jawabannya mungkin "tidak".
sumber
Saya telah menulis sebuah sistem yang akan menentukan peluang (matematis) pernyataan boolean benar, mengingat sebagian data. Yaitu kita dapat menentukan bahwa ada peluang 73% untuk
X
menjadi kenyataan, jika kita belum memiliki data yang cukup untuk memastikan bahwa X itu benar. "Kebenaran" akan menjadi cara yang benar-benar valid untuk menggambarkan persentase kepercayaan pada X.sumber