Quais são algumas das intuições que suportam chamar o construtor Maybe em Haskell de "Just"?

11

A intuição de um tipo opcional como Maybe Inté que ou não existe Int (assim, Nothingexiste) 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 Intlá. 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 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 Maybetipo.

vijrox
fonte
4
Nesse caso, acho que o Scala foi escolhido com o melhor nome de Some, em vez de None (sem dizer que é invenção de Scala).
Andres F.
3
@AndresF. Ele remonta ao menos a ML, com o qual Odersky definitivamente estava familiarizado.
Derek Elkins saiu de SE
2
@RobertHarvey Se um Haskeller estava usando Maybecomo mônada, ele provavelmente usaria returne provavelmente algo como, em mzerovez de Nothing. Quando Justé usado diretamente, geralmente Maybenão está sendo usado no estilo monádico naquele momento.
Derek Elkins saiu de SE
2
O precedente histórico teria sido o Optiontipo. Os designers de Haskell provavelmente sentiram que foo x = Just x"leram" melhor que foo x = Some x. Da mesma forma, a definição data Maybe a = Just a | Nothinglê muito bem como " Maybe aé um Just aou é Nothing". Somelê razoavelmente bem lá, mas Nonenão para data Option a = Some a | None.
Derek Elkins saiu de SE
3
Eles ainda estão vivos. Você pode enviar e-mail para pessoas como Phil Wadler e Simon Peyton Jones e perguntar a elas. Ou tente a lista de distribuição Haskell-Cafe.
Derek Elkins saiu de SE

Respostas:

2

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.

Lloyd Moore
fonte