fork(1) download
  1. {-# LANGUAGE DeriveFunctor #-}
  2.  
  3. import Data.List
  4.  
  5. data Tree a = Node a [Tree a] deriving (Functor, Show)
  6.  
  7. a :: Tree Double
  8. a = Node 1 [a]
  9.  
  10. flatten_a (Node x (n:_)) = x : flatten_a n
  11.  
  12. scan f (Node r l) = Node r $ map (fmap (f r) . scan f) l
  13.  
  14. main = print $ foldl' (+) 0 $ take 1800 $ flatten_a $ scan (+) a
Success #stdin #stdout 11.08s 9336KB
stdin
Standard input is empty
stdout
1620900.0