A intuição de um tipo opcional como Maybe Int
é que ou não existe Int (assim, Nothing
existe) ou que existe algum Int; há algo lá.
Faz sentido para mim que chamamos o construtor de tipos para o caso "negativo" Nothing
, pois significa exatamente isso - que não existe Int
lá. Mas por que usar a palavra Apenas no caso em que a ênfase está em algo realmente estar lá ?
Para mim, a palavra "Justo" carrega a conotação de que o que está descrevendo é menor que a alternativa; o oposto de algo realmente estar lá; por exemplo,
A: Você está fazendo alguma coisa hoje à noite?
B: não; Eu só vou ficar e assistir TV.
A: Você investigou os sons de fantasmas assustadores em sua casa?
B: sim, na verdade era apenas uma coruja.
Claramente, não tenho nenhuma intuição em que essa escolha de nomenclatura se baseou. O que é isso? Porque para mim, a palavra Just significa o oposto de como é usada no Maybe
tipo.
Maybe
como mônada, ele provavelmente usariareturn
e provavelmente algo como, emmzero
vez deNothing
. QuandoJust
é usado diretamente, geralmenteMaybe
não está sendo usado no estilo monádico naquele momento.Option
tipo. Os designers de Haskell provavelmente sentiram quefoo x = Just x
"leram" melhor quefoo x = Some x
. Da mesma forma, a definiçãodata Maybe a = Just a | Nothing
lê muito bem como "Maybe a
é umJust a
ou éNothing
".Some
lê razoavelmente bem lá, masNone
não paradata Option a = Some a | None
.Respostas:
Isso foi explicado no passado por Simon Peyton Jones. Isso implica que Nothing pode ser o valor ou 'apenas' um único outro valor de tipo. Existe apenas uma outra coisa que pode ser retornada como um valor ou nada.
fonte