Intuisi jenis opsional seperti Maybe Int
adalah bahwa baik ada ada Int (dengan demikian, ada Nothing
ada) atau bahwa ada beberapa Int; ada sesuatu di sana.
Masuk akal bagi saya bahwa kami memanggil konstruktor tipe untuk kasus "negatif" Nothing
, karena artinya persis seperti itu - bahwa tidak ada di Int
sana. Tetapi mengapa menggunakan kata Hanya dalam kasus di mana penekanannya adalah pada sesuatu yang benar-benar ada di sana ?
Bagi saya, kata "Adil" membawa konotasi bahwa hal yang digambarkannya kurang dari alternatif; kebalikan dari sesuatu yang benar-benar ada di sana; sebagai contoh,
A: Apakah Anda melakukan sesuatu malam ini?
B: Tidak; Saya hanya akan tinggal di dan menonton TV.
A: Apakah Anda menyelidiki suara hantu menyeramkan di sekitar rumah Anda?
B: yeah, ternyata itu sebenarnya hanya burung hantu.
Jelas saya tidak memiliki intuisi apa pun yang dipilih berdasarkan penamaan ini. Apa itu? Karena bagi saya, kata Just berarti kebalikan dari bagaimana kata itu digunakan dalam Maybe
jenisnya.
Maybe
sebagai monad, mereka kemungkinan akan menggunakanreturn
dan mungkin sesuatu sepertimzero
bukanNothing
. KetikaJust
digunakan secara langsung, biasanyaMaybe
tidak digunakan dalam gaya monadik pada saat itu.Option
tipe. Para perancang Haskell mungkin merasa bahwafoo x = Just x
"membaca" lebih baik daripadafoo x = Some x
. Demikian pula, definisi tersebutdata Maybe a = Just a | Nothing
berbunyi cukup baik sebagai "Maybe a
apakahJust a
itu atau ituNothing
".Some
membaca dengan cukup baik di sana, tetapiNone
tidak untukdata Option a = Some a | None
.Jawaban:
Ini telah dijelaskan di masa lalu oleh Simon Peyton Jones. Ini menyiratkan bahwa Tidak ada yang bisa menjadi nilai atau 'hanya' satu nilai jenis lain. Ada 'hanya' satu hal lain yang dapat dikembalikan sebagai nilai, atau tidak sama sekali.
sumber