從 stdin 讀取

根據 Haskell 2010 語言規範 ,以下是 Prelude 中可用的標準 IO 函式,因此不需要匯入它們。

getChar::IO Char - 從 stdin 讀取一個 Char

-- MyChar.hs
main = do
  myChar <- getChar
  print myChar

-- In your shell

runhaskell MyChar.hs
a -- you enter a and press enter
'a'  -- the program prints 'a'

getLine::IO String - 從 stdin 讀取 String,沒有新行字元

Prelude> getLine
Hello there!  -- user enters some text and presses enter
"Hello there!"

read::Read a => String -> a - 將 String 轉換為值

Prelude> read "1" :: Int
1
Prelude> read "1" :: Float
1.0
Prelude> read "True" :: Bool
True

其他不太常見的功能是:

  • getContents::IO String - 將所有使用者輸入作為單個字串返回,在需要時可以懶惰地讀取
  • interact :: (String -> String) -> IO () - 採用 String-> String 型別的函式作為引數。標準輸入裝置的整個輸入作為引數傳遞給該函式