Jakie są intuicje, które obsługują nazywanie konstruktora Może w Haskell „Just”?

11

Intuicja opcjonalnego typu jak Maybe Intto, że albo nie ma żadnego Int (w ten sposób, nie Nothingistnieje), albo że istnieje jakiś Int; coś tam jest.

Ma dla mnie sens, że nazywamy konstruktor typu dla przypadku „negatywnego” Nothing, ponieważ oznacza to dokładnie to, że tam nie Intma. Ale po co używać słowa Właśnie w przypadku, gdy nacisk kładziony jest na coś, co rzeczywiście tam jest ?

Dla mnie słowo „po prostu” niesie ze sobą konotację, że rzecz, którą opisuje, jest mniejsza niż alternatywa; przeciwieństwo czegoś, co faktycznie tam jest; na przykład,

Odp .: Czy robisz coś dziś wieczorem?

B: Nie; Jestem po prostu będzie pobyt i oglądać telewizję.

Odp .: Czy badałeś przerażające dźwięki duchów w twoim domu?

B: Tak, okazuje się, że to była po prostu sowa.

Najwyraźniej brakuje mi jakiejkolwiek intuicji, na której opiera się ten wybór nazw. Co to jest? Ponieważ dla mnie słowo Po prostu oznacza przeciwieństwo tego, w jaki sposób jest używane w tekście Maybe.

vijrox
źródło
4
W tym przypadku myślę, że Scala poszła z lepszą nazwą Some w przeciwieństwie do None (nie mówiąc, że to wynalazek Scali).
Andres F.,
3
@AndresF. Wraca przynajmniej do ML, z którym Odersky był zdecydowanie zaznajomiony.
Derek Elkins opuścił SE
2
@RobertHarvey Jeśli Haskeller był używany Maybejako monada, prawdopodobnie użyłby returni prawdopodobnie coś podobnego mzerozamiast Nothing. Kiedy Justjest używany bezpośrednio, zwykle Maybenie jest w tym momencie używany w stylu monadycznym.
Derek Elkins opuścił SE
2
Historyczny precedens byłby tego Optiontypu. Projektanci Haskell zapewne uważali, że foo x = Just x„czytają” lepiej niż foo x = Some x. Podobnie definicja data Maybe a = Just a | Nothingbrzmi całkiem dobrze jako „ Maybe ajest albo Just aalbo Nothing”. Someczyta się tam dość dobrze, ale Nonetak nie jest data Option a = Some a | None.
Derek Elkins opuścił SE
3
Nadal żyją. Możesz wysyłać wiadomości e-mail do takich osób jak Phil Wadler i Simon Peyton Jones i pytać ich. Lub wypróbuj listę mailingową Haskell-Cafe.
Derek Elkins opuścił SE

Odpowiedzi:

2

Wyjaśnia to w przeszłości Simon Peyton Jones. Oznacza to, że albo Nic nie może być wartością, albo „tylko” jedną wartością innego typu. Jest „tylko” jeszcze jedna rzecz, którą można zwrócić jako wartość lub nic.

Lloyd Moore
źródło