Por que Haskell força a primeira letra do construtor de dados a ser maiúscula?
Dê um exemplo feio:
data Bighead = Big
little = 1
f1 = little :: Int
f2 = Big :: BigHead
Na minha opinião
f1
ef2
todos apontam para alguns dados. o único diferente de little
eBig
) é pouco tem um pedaço de código para fazer avaliação. mas Big não.
odos eles têm um corpo regravável, pouco pode ser transformado de uma coleção de dados em um resultado, e Big simplesmente não executa o último passo - ele sempre mantém esses formulários de dados (mas recursivamente eles podem ser avaliados).
Mas na forma de sintaxe, eles são quase os mesmos: podem ser aplicados, podem ser avaliado
ma grande coisa pode ser que as funções não possam alterar seus parâmetros aplicados, mas os dados pode
Essa é a única razão pela qual Haskell trata os nomes de dados e funções de maneira diferent
Chamada para análise: -)
edit: mais algumas almofadas
data A = B Int
tipo deB
:
B :: Int -> A
b :: Int -> A
b = B