運行此代碼的輸出不正確,我不能悲哀地想知道我自己的代碼哪里出了問題。我盯著它看了好幾個小時。
代碼:
import System.IO(isEOF)
reverseIO :: IO ()
reverseIO = do
line <- getLine
done <- isEOF
if null line
then return ()
else if done then
putStrLn $ reverseStr line
else do
reverseIO
reverseStr :: [w] -> [w]
reverseStr [] = []
reverseStr (x:xs) = reverseStr xs [x]
main = do
reverseIO
期望: 2. 反轉并列印出來。
> hello world
world hello
跑步:
GHCi, version 8.10.6: https://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/runner/University-Labs/.ghci
[1 of 1] Compiling Main ( Main.hs, interpreted )
Ok, one module loaded.
? hello world
編輯:按Ctrl D,
GHCi, version 8.10.6: https://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/runner/University-Labs/.ghci
> hello world
dlrow olleh
uj5u.com熱心網友回復:
您必須替換replaceStr為unwords . reverse . words:
reverseIO = do
line <- getLine
done <- isEOF
if null line
then return ()
else if done then
putStrLn . unwords . reverse . words $ line
else reverseIO
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517161.html
標籤:哈斯克尔
