Continuação do Exemplo Simples – Programa completo
12 Julho, 2008
Resolvi continuar aquele exemplo com que estava brincando neste post. Nele, basicamente criei uma função extenso que recebia uma String com um número de quatro dígitos e retornava este número por extenso. Agora, porque não fazermos um programa completo, ao invés de apenas umas função?
Bom, para isso vamos organizar um pouco as coisas: coloquei a função extenso em um arquivo “Exercicio.hs” e declarei, no topo do documento, o módulo Exercicio:
module Exercicio
where
Depois, criei outro arquivo, “Main.hs”, que possuia o seguinte código:
module Main where
import IO
import Exercicio
main = do
hSetBuffering stdin LineBuffering
putStrLn "Numero"
numero <- getLine
putStrLn("" ++ extenso(numero)++"")
Vamos às explicações.
A primeira linha declara o módulo Main. Para compilar um código em Haskell, é preciso que ele possua obrigatoriamente um módulo Main.
A segunda e a terceira linha contêm imports. IO é um módulo que possui funções de entrada e saída. Exercicio é o módulo que foi criado anteriormente e possui a função extenso.
Na linha seguinte, a função main também é obrigatória na compilação de um programa. É onde a execução inicia-se.
Esta função recebe um bloco do. Este bloco é uma das estruturas mais “misteriosas” do Haskell: Monads. Há muito sobre Monads na Internet, basicamente é um bloco em que as linhas são executadas na ordem, o que é
essencial para programas de entrada e saída. Com isso em mente, vamos em frente.
hSetBuffering stdin LineBuffering indica que vamos trabalhar com a linha de comando.
putStrLn "Numero" imprime “Número” na tela e pula uma linha.
numero <- getLine captura o valor que o usuário digitar.
putStrLn("" ++ extenso(numero)++"") imprime o valor da função extenso(numero).
Teste o módulo Main no interpretador. Se estiver funcionando, pode passar para o próximo passo: a compilação.
Na linha de comando, vá até o diretório em que os dois arquivos estiverem e digite
ghc --make Main.hs -o Extenso.exe
Basicamente, o “Extenso.exe” é o nome do arquivo gerado no final pelo GHC, no Linux, o “.exe” não é necessário.
Depois de compilado, é só executar o Exetenso.exe e se divertir.
Tags: iniciantes, Haskell, exemplo, compilação
23 Outubro, 2008 às 9:36 am
olá.. eu não consigo visualizar a função extenso.. cade ?? ;~~
eu vou começar a mexer com haskell para um trabalho da facul. e o seu exemplo será meu primeiro teste… se você puder me auxiliar.. ficaria agradecida
bjos
23 Outubro, 2008 às 9:45 am
Olá,
Este post é continuação do “Listas e Strings – Exemplo Simples”, que é onde está a função “extenso”.
Link para o post: http://haskellguys.wordpress.com/2008/07/06/listas-e-strings-exemplo-simples/
23 Outubro, 2008 às 10:59 am
sim sim.. achei ela.. agora to tentando fazer funfa,.. to usando hugs no windows.. criei os dois arquivos e depois abro o arquivo main.hs com o hugs .. já corrigi errinhos de sintaxe e agora to vendo como o negocio funciona .. uhuh.. :*
16 Junho, 2009 às 6:12 pm
Ola.. fiquei com duvidas sobre a compilacao… aqui deu que nao foi encontrado o ghc ou algo do tipo..
preciso baixar esse tal de ghc? vlw..
17 Junho, 2009 às 11:42 am
Olá,
É preciso baixar o ghc sim. Recomendo a leitura do post “Programando em Haskell – Onde começar?” http://haskellguys.wordpress.com/2008/04/27/programando-em-haskell-onde-comecar/