Ir para o conteúdo
HIT_Braga

Ajuda IO e não só

Mensagens Recomendadas

HIT_Braga

Boas.

Tenho uma função IO que lê um ficheiro e devolve o seu conteúdo (no caso dois Inteiros).

carregardime = do
                 conteudo <- readFile ("tabuleiro.gseg")
                 let ncol1=fst$transf conteudo
                     nlin1=snd$transf conteudo

Até aqui tudo ok.

O pior é que eu quero usar estes valores para me fazerem duas funções e dá erro.Estas funções estão num ficheiro à parte.

iniciar::Tabuleiro
iniciar=[(gerazeros)|y<-[1..ncol1]]
--Gera listas com zeros
gerazeros::[int]
gerazeros =[0|y<-[1..nlin1]]

NOT IN SCOPE nlin1

NOT IN SCOPE ncol1

Gostava que ele usa-se os valores que estão no ficheiro, pois assim definia o tamanho que queria em ficheiro e voilá.

Alguém dá umas dicas.


" Elogios não me elevam, ofensas não me rebaixam, sou o que sou e não o que acham! "

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

O Haskell é uma linguagem funcional, e não tem estado! E mesmo numa linguagem tipo o C, as variáveis nlin1 e ncol1 seriam locais à função e não estariam disponíveis. Para melhorar, não estás a chamar a função carregardime.

Podes começar por pôr a função carregardime a devolver os valores que queres usar, e depois, chamando a função e colocando o seu resultado numa variável, terás acesso aos valores onde quiseres.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HIT_Braga

Boas

Rui Carlos podes explicar-te melhor.

Nao percebi bem a ideia.

Podes pastar ai um pouco de código do tipo???


" Elogios não me elevam, ofensas não me rebaixam, sou o que sou e não o que acham! "

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.