Advertisement
Guest User

Untitled

a guest
Apr 18th, 2014
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. Теоретическое доказательство:
  2. Maybe:
  3. 1) pure id <*> v = v
  4. pure id <*> v -> Just id <*> v -> fmap id v -> либо Just (id x) = Just x = v, либо Nothing = Nothing
  5.  
  6. 2) pure (.) <*> u <*> v <*> w = u <*> (v <*> w)
  7. Пусть u, v или w = Nothing. Тогда, и справа, и слева будет Nothing
  8. Если же нет:
  9. pure (.) <*> Just x <*> Just y <*> Just z | Just x <*> ((Just y) <*> (Just z))
  10. Just (.) <*> Just x <*> Just y <*> Just z | Just x <*> (Just (y z)) = Just (x (y z))
  11. Just ((.) x) <*> Just y <*> Just z |
  12. Just (x . y) <*> Just z |
  13. Just ((x y (z))) |
  14.  
  15. 3) pure g <*> pure x = pure (g x)
  16. Just g <*> Just x | Just (g x)
  17. Just (g x)
  18.  
  19. 4) g <*> pure x = pure ($ x) <*> g
  20. Just gx <*> Just x | Just ($ x) <*> (Just gx)
  21. Just (gx x) | Just (gx x)
  22.  
  23. List:
  24. 1) pure id <*> v = v
  25. [id] <*> [a, b, ..] -> [id x | x <- v] -> [id a, id b, ..] -> [a, b, ..]
  26.  
  27. 2) pure (.) <*> u <*> v <*> w = u <*> (v <*> w)
  28. [(.)] <*> u <*> v <*> w | u <*> (v <*> w)
  29. [x . y | x <- u, y <- v] <*> w | u <*> [y z | y <- v, z <- w]
  30. [x (y z) | x <- u, y <- v, z <- w] | [x (y z) | x <- u, y <- v, z <- w]
  31.  
  32. 3) pure g <*> pure x = pure (g x)
  33. [g] <*> [x] = [g x]
  34.  
  35. 4) g <*> pure x = pure ($ x) <*> g
  36. [..] <*> [x] | [$ x] <*> g
  37. [gx x | gx <- g] | [($ x) gx | gx <- g] = [gx x | gx <- g]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement