Escribir o no escribir `módulo principal donde` en Haskell
module entry-point (1)
Realmente no hay una diferencia, module Main (main) where estaría la definición implícita cuando no especifique un encabezado usted mismo. Del informe Haskell 98 :
Se permite una forma abreviada de módulo, que consiste solo en el cuerpo del módulo. Si se usa esto, se supone que el encabezado es
module Main(main) where.
Preferiría una definición explícita a una implícita, pero para Main.hs es una preferencia menor.
La especificación Haskell 98 dice que el punto de entrada de un programa, es decir, la función main , debe residir en el módulo denominado Main, por convención. Sin embargo, incluso si no escribe el module Main where en la parte superior del archivo que escribe main , el código fuente se compila y parece funcionar correctamente cuando está utilizando GHC.
La pregunta es:
- ¿Cuál es la diferencia entre escribir el
module Main wherey no escribirlo? - ¿Cuál es el preferido?