Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Basicamente construções haskellicas com do por, exemplo são na vdd açucares sintaticos "profundos", por isso a leitura do codigo é feita de maneira suave, mas na vdd isso
- --esconde um pouco a natureza monadica das funções
- fib_monadic_suggared :: Int -> IO Int
- fib_monadic_suggared x = do
- if (x < 0) then (return 1) else do
- m1 <- fib_monadic_suggared (x - 1)
- m2 <- fib_monadic_suggared (x - 2)
- print [m1, m2]
- return (m1 + m2)
- --A mesma sem acuçar sintantico produz algo mais facild de visualizar a interface monadica
- fib_monadic_dessuggared :: Int -> IO Int
- fib_monadic_dessuggared x = if (x < 0) then (return 1) else
- fib_monadic_dessuggared (x - 1) >>= (\m1 -> fib_monadic_dessuggared (x - 2) >>= (\m2 -> print [m1, m2] >> return (m1 + m2)))
- main :: IO ()
- main = do
- let q = 10
- d <- fib_monadic_suggared q
- print d
- fib_monadic_dessuggared q >>= (\x -> print x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement