Advertisement
kpfp_linux

Monad's gonna monad.

Nov 12th, 2012
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 0.97 KB | None | 0 0
  1. -module(tmp).
  2. -compile(export_all).
  3.  
  4.  
  5. is_divbyfive(X) when X rem 5 =:= 0-> [X];
  6. is_divbyfive(_) -> [].
  7.  
  8. is_divbysix(X) when X rem 6 =:= 0-> [X];
  9. is_divbysix(_) -> [].
  10.  
  11. is_divbyseven(X) when X rem 7 =:= 0-> [X];
  12. is_divbyseven(_) -> [].
  13.  
  14. datmonad() ->
  15.     lists:map(
  16.         fun(X) -> io:format("I can haz ~p~n", [X]) end,
  17.         [X || X <- lists:seq(0,420),
  18.               _ <- is_divbyfive(X),
  19.               _ <- is_divbysix(X),
  20.               _ <- is_divbyseven(X)
  21.         ]).
  22.  
  23. datmonad2() ->
  24.     [apply(fun(XX) -> io:format("I can haz ~p~n", [XX]) end, [X]) || X <- lists:seq(0,420),
  25.           _ <- is_divbyfive(X),
  26.           _ <- is_divbysix(X),
  27.           _ <- is_divbyseven(X)
  28.     ].
  29.  
  30. datmonad3() ->
  31.     [io:format("I can haz ~p~n", [X]) || X <- lists:seq(0,420),
  32.           _ <- is_divbyfive(X),
  33.           _ <- is_divbysix(X),
  34.           _ <- is_divbyseven(X)
  35.     ].
  36.  
  37.  
  38. datmonad4() ->
  39.     [io:format("I can haz ~p~n", [X2]) || X <- lists:seq(0,420),
  40.           _ <- is_divbyfive(X),
  41.           _ <- is_divbysix(X),
  42.           _ <- is_divbyseven(X),
  43.           X2 <- [X*2]
  44.     ].
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement