【发布时间】:2016-08-13 11:00:43
【问题描述】:
所以我只是做了一个程序,它要求输入一个数字 n 并显示斐波那契数列的第 n 项:
import Control.Monad (forever)
main = forever $ do
putStrLn ""
putStr "Which Fibonacci sequence number do you need? "
number <- readLn :: IO Int
putStrLn $ "The Fibonacci number you wanted is " ++ (show $ fib number) ++ "."
putStrLn ""
where fib :: Int -> Integer
fib number = fibs !! number
fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
当我在 GHCi 或通过 runhaskell 运行程序时,它执行得很好;也就是说,要求我输入一个数字,允许我在同一行输入它并在另一行返回一个数字:
Gallifreian@Gallifrey:~/Haskell$ ghci
GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help
Prelude> :l Fib.hs
[1 of 1] Compiling Main ( Fib.hs, interpreted )
Ok, modules loaded: Main.
*Main> main
Which Fibonacci sequence number do you need? 4
The Fibonacci number you wanted is 3.
但是,当我运行编译后的程序时,它会返回:
Gallifreian@Gallifrey:~/Haskell$ ./Fib
4
Which Fibonacci sequence number do you need? The Fibonacci number you wanted is 3.
我。 e.等待我输入一个数字,然后在一行上返回所有提示。 我做错了什么?有没有办法解决这个问题?
【问题讨论】:
-
找到答案,请参阅stackoverflow.com/questions/2500459/…(我没有任何标志可将其标记为重复)
标签: haskell