25 lines
557 B
Plaintext
25 lines
557 B
Plaintext
open monad io number string
|
|
|
|
:::IO
|
|
|
|
take_numbers 0 xs = do
|
|
return $ iter xs
|
|
where f x = sqrt (toSingle x) + 5.0 * (x ** 3.0)
|
|
p x = x < 400.0
|
|
iter [] = return ()
|
|
iter (x::xs)
|
|
| p res = do
|
|
putStrLn (format "f({0}) = {1}" x res)
|
|
iter xs
|
|
| else = do
|
|
putStrLn (format "f({0}) :: Overflow" x)
|
|
iter xs
|
|
where res = f x
|
|
take_numbers n xs = do
|
|
x <- readAny
|
|
take_numbers (n - 1) (x::xs)
|
|
|
|
do
|
|
putStrLn "Please enter 11 numbers:"
|
|
take_numbers 11 []
|