Trabalhando com programa de múltiplos arquivos no Haskell
Quando o projeto cresce, é comum dividir o código em arquivos menores (módulos) para uma melhor organização.
Para isso vou explicar passo a passo como configurar esse tipo de ambiente no Haskell.
1. Crie o arquivo de um módulo (Math.hs)
module Math where
soma :: Int -> Int -> Int
soma x y = x + yImportante
O nome do módulo (ex.:
Math) deve corresponder ao nome do arquivo (Math.hs).
A palavra module define o nome do módulo (deve corresponder ao nome do arquivo, sem a extensão .hs).
Note
Para projetos maiores, você pode usar submódulos como
MeuProjeto.Math, colocando o arquivo emMeuProjeto/Math.hs.
Funções como soma podem ser exportadas e usadas em outros arquivos.
Por padrão, tudo no módulo é exportado. Para limitar, use:
module Math (soma) whereAqui, apenas soma será visível fora do módulo.
2. Arquivo principal (Main.hs)
module Main where
import Math
main :: IO ()
main = print (soma 3 5)import Math traz as funções do módulo Math para uso.
O módulo Main é especial porque contém a função main, o ponto de entrada.
3. Compilação
No terminal, na pasta do projeto:
$ ghc Main.hsO GHC automaticamente encontra e compila Math.hs por causa do import.
Execute:
$ ./MainSaída: 8