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.

Blogged with the Flock Browser

Tags: , , ,

5 Respostas a “Continuação do Exemplo Simples – Programa completo”

  1. Raquel Diz:

    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


  2. 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/

  3. Raquel Diz:

    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.. :*

  4. Joao Diz:

    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..


Deixe uma resposta