Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- 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
  2. --esconde um pouco a natureza monadica das funções
  3. fib_monadic_suggared :: Int -> IO Int
  4. fib_monadic_suggared x = do
  5.                             if (x < 0) then (return 1) else do
  6.                                                              m1 <- fib_monadic_suggared (x - 1)
  7.                                                              m2 <- fib_monadic_suggared (x - 2)
  8.                                                              print [m1, m2]
  9.                                                              return (m1 + m2)
  10.  
  11. --A mesma sem acuçar sintantico produz algo mais facild de visualizar a interface monadica
  12. fib_monadic_dessuggared :: Int -> IO Int
  13. fib_monadic_dessuggared x = if (x < 0) then (return 1) else
  14.                                                          fib_monadic_dessuggared (x - 1) >>= (\m1 -> fib_monadic_dessuggared (x - 2) >>= (\m2 -> print [m1, m2] >> return (m1 + m2)))  
  15. main :: IO ()
  16. main =  do
  17.           let q = 10
  18.           d <- fib_monadic_suggared q
  19.           print d
  20.           fib_monadic_dessuggared q >>= (\x -> print x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement