fork download
  1. {-# LANGUAGE TupleSections #-}
  2.  
  3. import Control.Applicative
  4. import Control.Monad (guard)
  5. import Data.List (unfoldr)
  6.  
  7. g = sum
  8. . unfoldr ( \x -> fmap(x,) $
  9. x`div`2 <$ guard(even x)
  10. <|> x*3 + 1 <$ guard( x/=1 )
  11. )
  12.  
  13. main = print $ g 201
Success #stdin #stdout 0s 5724KB
stdin
Standard input is empty
stdout
4088