A maior parte da sintaxe Haskell tem beleza de pureza. Mas a sintaxe do registro parece feia. É desconfortável. Parece algum tipo de mistura com C. Requer vírgula e aparelho. Haskell possui separador, separação baseada em linha. Portanto, parece muito detalhado do que originalmente exigia. Por que é projetado dessa maneira?
9
Respostas:
Enquanto eu não estava no comitê de design, acho que a sintaxe do registro foi modelada para ser consistente com a sintaxe da lista. A sintaxe de exportação do módulo também usa vírgulas, o único local real em que o layout é usado são as declarações de nível superior, onde cláusulas e do-notation.
Além disso, dado
escrita
sem os chavetas entrariam em conflito com o restante da sintaxe e, usando o layout, como
tornaria a sintaxe bastante quebradiça. Adicione um "where" no lugar errado e seu código significa algo completamente diferente.
Se você não estiver satisfeito com o estado dos registros em Haskell (e não ficaria sozinho com isso), recomendo que você dê uma olhada em fclabels ou até em elaborações de artigos de mesa elaborados como HList ou grapefruit-records (os dois últimos não estão sendo para os fracos de coração, mas também incrivelmente poderosos)
fclabels permitiria que você escrevesse (yay pointfree)
assim como
além de sua raison d'être real, que está compondo rótulos:
fonte
setL
mutável média ?? Sem IO? É difícil entender ...