Dlaczego typ opcji Scala nie jest nazywany Może, tak jak w przypadku Haskell? [Zamknięte]

13

Dlaczego typ opcji Scala nie jest nazywany Może, tak jak w przypadku Haskell?

Może ma dla mnie o wiele bardziej „semantyczny sens”, ale może Option ma inne zachowanie, którego nie jestem świadomy.

Czy istnieje jakiś szczególny powód, dla którego Opcja w Scali nie została nazwana Może?

fnl
źródło

Odpowiedzi:

23

Scala jest również inspirowana Ocaml, który korzysta z Opcji .

Opcje to standardowy typ Ocaml, który może być None(niezdefiniowany) lub Some xgdzie x może mieć dowolną wartość. Opcje są szeroko stosowane w Ocaml do reprezentowania niezdefiniowanych wartości (trochę jak NULL w C, ale w sposób bezpieczny dla pamięci i typu) ...

Myślę, że wybrana nazwa jest kwestią gustu.

Mik378
źródło
8
F # też. Strona na Wikipedii to en.wikipedia.org/wiki/Option_type . Wydaje się, że jest to bardziej standardowa nazwa niżMaybe
KChaloux,
2
Ocaml otrzymuje nazwę od SML. W krótkim spojrzeniu przez The Next 700 Programming Languages Landina nie zauważyłem typu opcji, więc SML może być początkiem nazwy.
Peter Taylor
1
Argumentem przemawiającym za Optiontym jest to, że jest to optionalwartość (albo ją rozumiesz, albo nie rozumiesz). Maybeimplikuje pewien stopień niepewności ze strony programisty. Może jest wartość? Nie wiem .. Czy powinienem otrzymać wartość? optional valueMoim zdaniem brzmienie brzmi bardziej celowo.
Jochem Kuijpers
6

Lepszym pytaniem byłoby tutaj, dlaczego wywoływany jest typ opcji Haskella Maybe. Typ opcji ML jest prawdopodobnie dziadkiem wszystkich typów opcji i nazywa się option.

W każdym razie jest to pytanie terminologiczne, więc nie będzie zawierała zasadniczej odpowiedzi. Ludziom, którzy wybrali imię w Haskell, bardziej się podobało, to wszystko.

sacundim
źródło
2
Co skłoniło cię do powtórzenia informacji w nowej odpowiedzi, która jest już dobrze uwzględniona w zaakceptowanej odpowiedzi i jej podstawowych komentarzach?
Robert Harvey
4
@RobertHarvey ML po ustanowieniu precedensu jest nową informacją, prawdziwym problemem jest to, że odpowiedź jest domniemana.
djechlin
DOBRZE. Czy masz referencję lub coś więcej niż tylko opinię? Ponieważ opinie są lepiej reprezentowane jako komentarze, a nie odpowiedzi. Zwłaszcza twój drugi akapit.
Robert Harvey
2
Def. Opcja: czynność wyboru; wybór. Def. Być może; możliwie; Niepewność; Niepewna odpowiedź. Dla mnie to wystarczy powiedzieć Być może jest to znacznie lepsza nazwa z czysto językowego punktu widzenia. „Opcja” oznacza, że ​​istnieje (wiele) wyborów, podczas gdy monadyczna nazwa „Może” jest o wiele bardziej istotna: jedna rzecz lub nic. Ale tak, ML (i stąd Opcja) pojawiły się na pierwszym miejscu, więc może to być przyczyną złego nawyku nazywania (i patrz komentarz Petera Taylora do właściwej odpowiedzi powyżej - odwołuje się do ML).
fnl
@fnl Zobacz mój komentarz do drugiej odpowiedzi; Sądzę, że jest uzasadniony argument, który optionjest skrótem optional. W takim przypadku (wielokrotne) wybory są zredukowane do dwóch: albo tam jest, albo nie ma.
Jochem Kuijpers