crislanio_macedo Posted May 27, 2014 Report Share Posted May 27, 2014 Este é um exemplo simples, mas que não está a dá certo. Alguém poderia ajudar-me a corrigi o problema? Prelude> :l random.hs [1 of 1] Compiling Main ( random.hs, interpreted ) random.hs:7:1: Parse error: naked expression at top level Failed, modules loaded: none. Prelude> Estou a ter dificuldades no que refere a usar a função randomRIO. import qualified System.Random as R main :: IO () main = do n <- R.randomRIO (1, 5); putStrLn $ "Este é o valor aleatório: " ++ show n Link to comment Share on other sites More sharing options...
thoga31 Posted May 27, 2014 Report Share Posted May 27, 2014 (edited) main = do n <- R.randomRIO (1, 5); -- o que é este ponto e vírgula está aqui a fazer? Edited May 27, 2014 by thoga31 Knowledge is free! Link to comment Share on other sites More sharing options...
crislanio_macedo Posted May 28, 2014 Author Report Share Posted May 28, 2014 Realmente isto não era para está aqui, mas o erro persiste. main = do n <- R.randomRIO (1, 5); -- o que é este ponto e vírgula está aqui a fazer? Link to comment Share on other sites More sharing options...
crislanio_macedo Posted May 28, 2014 Author Report Share Posted May 28, 2014 (edited) Até que enfim, um contexto que queria mostrar-lhes. Aqui segue abaixo um exemplo de randomRIO. Me expliquem e me corrijam quanto a seguintes afirmações. Neste dado código, o let serve para pegar um contexto puro do 'do', como o do gerou um contexto de impuro para puro (de uma saída de y m d com IO ele tirou IO). Quanto a -> faria sentido usa-lo de que forma ? Somente quando está com o do ?ele aglutina acções! Bom o do me obriga a ter como saída final uma acção que seja impura, no caso a última acção foi o return s que mostra este contexto impuro. A seguinte afirmação que seque por exemplo era se eu poderia gerar um contexto puro como saída final ? exemplo, o do faria com que 'entrasse ' na caixa uma [stringIO] e retiraria o IO e ficaria somente String(mas a último comando me obrigaria a me retornar um contexto impuro neste caso StringIO), agora eu teria como converter essa saída gerada para de StringIO para String e me retornar um contexto Puro ? import System.Random as R main = do s <- ( inputDia 0 0 0) putStrLn s return () fnc :: Integer -> IO Integer fnc m = randomRIO (1, m) inputDia d m a = do d <- fnc 31 m <- fnc 12 a <- fnc 2014 let s =show d ++ " de " ++ show m ++ " de " ++ show a return s Edited May 28, 2014 by thoga31 GeSHi Link to comment Share on other sites More sharing options...
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