Mengapa jenis Opsi Scala tidak disebut Maybe, seperti di Haskell? [Tutup]

13

Mengapa jenis Opsi Scala tidak disebut Maybe, seperti di Haskell?

Mungkin lebih masuk akal "semantik" bagi saya, tetapi mungkin Opsi memiliki perilaku berbeda yang tidak saya sadari.

Apakah ada alasan khusus mengapa Opsi dalam Scala tidak disebut Maybe?

fnl
sumber

Jawaban:

23

Scala juga terinspirasi oleh Ocaml, yang menggunakan Option .

Opsi adalah tipe standar Ocaml yang dapat berupa None(tidak terdefinisi) atau di Some xmana x dapat berupa nilai apa pun. Opsi banyak digunakan dalam Ocaml untuk mewakili nilai yang tidak terdefinisi (sedikit seperti NULL dalam C, tetapi dalam jenis dan cara yang aman memori) ...

Saya pikir nama yang dipilih adalah masalah selera.

Mik378
sumber
8
F # juga. Halaman di Wikipedia adalah en.wikipedia.org/wiki/Option_type . Tampaknya menjadi nama yang lebih standar daripadaMaybe
KChaloux
2
Ocaml mendapatkan nama dari SML. Sepintas lalu melalui Landin The Next 700 Bahasa Pemrograman saya tidak melihat jenis opsi, jadi SML mungkin asal usul nama.
Peter Taylor
1
Argumen yang mendukung Optionadalah bahwa itu optionalnilai (baik Anda mendapatkannya atau tidak). Maybemenyiratkan beberapa tingkat ketidakpastian pada bagian programmer. Mungkin ada nilainya? Saya tidak tahu .. Haruskah saya mendapatkan nilai? Kata-katanya optional valueterdengar lebih disengaja menurut saya.
Jochem Kuijpers
6

Pertanyaan yang lebih baik di sini adalah mengapa tipe opsi Haskell dipanggil Maybe. Jenis opsi ML mungkin adalah grandaddy dari semua jenis opsi, dan itu disebut option.

Bagaimanapun, ini adalah pertanyaan terminologis, jadi itu tidak akan memiliki jawaban yang berprinsip. Orang-orang yang memilih nama di Haskell lebih menyukainya, itu saja.

sakundim
sumber
2
Apa yang membuat Anda mengulangi informasi dalam jawaban baru yang sudah terlindungi dengan baik oleh jawaban yang diterima dan komentar mendasarnya?
Robert Harvey
4
@RobertHarvey ML telah menetapkan preseden adalah informasi baru, masalah sebenarnya adalah bahwa jawabannya adalah dugaan bahkan itu.
djechlin
BAIK. Apakah Anda memiliki referensi, atau sesuatu yang lebih dari sekadar pendapat? Karena pendapat lebih baik disajikan sebagai komentar, bukan jawaban. Terutama paragraf kedua Anda.
Robert Harvey
2
Def. Opsi: Tindakan memilih; pilihan. Def. Mungkin; mungkin; Ketidakpastian; Jawaban yang tidak pasti. Bagi saya itu cukup untuk mengatakan Mungkin adalah nama yang jauh lebih baik dari sudut pandang linguistik murni. "Opsi" menyiratkan bahwa ada (banyak) pilihan, sedangkan nama monadik "Mungkin" jauh lebih penting: satu hal atau tidak sama sekali. Tapi ya, ML (dan karenanya, Opsi) datang lebih dulu, sehingga mungkin menjadi alasan untuk kebiasaan penamaan yang buruk (Dan lihat komentar Peter Taylor untuk jawaban yang tepat di atas - ia memang mereferensikan ML).
fnl
@ fnl Lihat komentar saya pada jawaban lain; Saya pikir ada alasan yang masuk akal untuk membuat optionsingkatan optional. Dalam hal ini (banyak) pilihan dikurangi menjadi hanya dua: apakah itu ada atau tidak.
Jochem Kuijpers