20_LESI Posted May 10, 2009 at 07:28 PM Report #262871 Posted May 10, 2009 at 07:28 PM Boas! Tenho um trabalho para entregar amanhã, em pleno Enterro da gata (havia de ser crime), e ainda me falta uma cena para ter interface... Aqui vai a dúvida: Tenho as definiçoes de tipos de dados: data Def = Exp:=:Exp deriving (Read,Eq) data Exp = Id | Exp:.:Exp --composiçao | Fst | Snd | Exp:/\:Exp --split | Exp:><:Exp --produto | Func String | Num Int deriving (Read, Eq) e num ficheiro tenho 6 Def no programa faço, por exemplo: *Main> provar prova1 sendo que prova1 é o nome de uma das minhas 6 Def, e o programa resolve bem o problema é que em tempo de execução e pedido ao util. para inserir o nome da prova e uso um getLine para guardar numa variavel: opcao1 :: IO() opcao1 = do putStr "\nDigite o nome da definicao que deseja provar: " prova <- getLine ... Acontece que essa variavel é uma string e depois ao fazer provar "nome da var." o compilador diz que não pode fazer tal coisa por aquilo ser uma string e nem com um cast para Def ele lá vai. Alguém me sabe dizer o que tenho de fazer? Já ouvi dizer k tenho de instanciar para a classe read, no entanto depois de tentarmos várias vezes decidimos desistir de fazer por aí...
Betovsky Posted May 10, 2009 at 07:48 PM Report #262878 Posted May 10, 2009 at 07:48 PM E como é que foste para a opcao1? "Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !" Sign on a computer system consultant's desk
20_LESI Posted May 11, 2009 at 12:38 PM Author Report #262986 Posted May 11, 2009 at 12:38 PM Bastava uma simples função de pattern matching, de String para Def...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now