import List import System.Environment -- Naive method un :: [Rational] un = unfoldr (\x -> Just (x, (x+2)/(x+1))) 1 -- Newton's method vn :: [Rational] vn = unfoldr (\x -> Just (x, x/2+1/x)) 1 main = do argv <- getArgs -- () -> IO [String] let s = read (head argv) -- [String] -> Int in (putStrLn . show) (vn!!s) -- Int -> IO String