La mayor parte de la sintaxis de Haskell tiene belleza de pureza. Pero la sintaxis de registro se ve fea. Es incómodo. Se siente una especie de mezcla con C. Requiere coma y llaves. Haskell tiene tabulación, separación basada en línea. Por lo tanto, se ve demasiado detallado de lo que originalmente requiere. ¿Por qué está diseñado de esa manera?
9
Respuestas:
Si bien no estaba en el comité de diseño, considero que la sintaxis de los registros fue conformada para ser consistente con la sintaxis de la lista. La sintaxis de exportación del módulo también usa comas, el único lugar real donde se usa el diseño son las declaraciones de nivel superior, donde las cláusulas y la anotación.
Además de eso, dado
escritura
sin las llaves chocarían con el resto de la sintaxis, y usando el diseño, como
haría la sintaxis bastante frágil. Agregue un "dónde" en el lugar equivocado y su código significa algo completamente diferente.
Si no está satisfecho con el estado de los registros en Haskell (y no estaría solo con eso), le recomiendo que eche un vistazo a las etiquetas o incluso a la elaboración de hackers de clase tipo como HList o registros de toronja (los dos últimos no son para los débiles de corazón, pero también increíblemente poderosos)
fclabels te permitiría escribir (yay pointfree)
tanto como
además de su verdadera razón de ser, que es componer etiquetas:
fuente
setL
Significa mutable? Sin IO? Es difícil de entender ...