Boa tarde, pessoal!
Estou tentando seguir um tutorial sobre Haskell para ver como funciona esse ambiente.
Se alguém puder me dar uma ajuda, tipo:
--TAD Pilha Exportacao Explicita,as operações listadas estaram visiveis
module Pilha(Pilha,vazia,pop,top,push,ehvazia)where
data Pilha a = Pvazia|P1 (a,Pilha,a)
deriving(Show)
top :: Pilha a -> a
top Pvazia = error "pilha vazia"
top (P1(a,p)) = a
pop :: Pilha a -> Pilha a
pop Pvaiza = error "pilha vazia"
pop (P1(a,p)) = p
push :: (a,Pilha,a) -> Pilha a
push (a,p) = P1(a,p)
ehvazia :: Pilha a -> Bool
ehvazia Pvazia = True
ehvazia _ = False
vazia :: () -> Pilha a
vazia() = Pvazia
module UsaPilhas where
import Pilha
--lineariza pilha
lineariza :: Pilha a -> [a]
lineariza p
| ehvazia(p) = []
| otherwise = top(p):lineariza(pop(p))
tutorial completo: [url]http://www.mat.uc.pt/~pedro/lectivos/ProgramacaoFuncional/apontamentosHaskellcap6.pdf[/url]
O nome do arquivo deve ser o mesmo nome do modulo, isto tem alguma coisa haver ???
Este tipo de teste pode ser realizado no Interpretador Haskell GHCi ou tem que ser compilado no GHC???
Para executa-lo é somente entrar com o nome do módulo no interpretador ?
fazendo desta forma o seguinte erro está ocorrendo:Prelude> UsaPilhas
<interactive>:1:0: Not in scope: data constructor `UsaPilhas'
Prelude>
Vlws!!!
:idea:


