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 where
y no escribirlo? - ¿Cuál es el preferido?