Generating π in Haskell
Haskell beats CL quite comfortably using the same algorithm :

Saintly Man? - That Mitchell & Webb Look - BBC Two
module Main( main ) where
import System( getArgs )
arccot :: Integer -> Integer -> Integer
arccot x unity =
arccot' x unity 0 start 1 1
where start = unity `div` x
arccot' x unity sum xpower n sign | xpower `div` n == 0 = sum
| otherwise =
arccot' x unity (sum + sign*term) (xpower `div` (x*x)) (n+2) (-sign)
where term = xpower `div` n
machin_pi :: Integer -> Integer
machin_pi digits =
pi' `div` (10 ^ 10)
where unity = 10 ^ (digits+10)
pi' = 4 * (4 * arccot 5 unity - arccot 239 unity)
main :: IO ()
main = do
args <- getArgs
putStrLn (show (machin_pi (read (head args) :: Integer)))
The first 10000 digits.
> time ./machin_pi 10000 31415926535897932384626433832795028841971693993751058209749445923078164062862089 ... real 0m0.381s user 0m0.290s sys 0m0.061s

Saintly Man? - That Mitchell & Webb Look - BBC Two