Haskell程式讀取標準輸入的數字


在本教程中,我們將討論編寫一個在Haskell程式語言中從使用者獲取輸入的程式。Haskell是一種宣告式、強型別和函數語言程式設計語言。

本教程討論了在Haskell程式語言中從標準輸入讀取數字。

Haskell是一種純函式式語言。純函式是指對於相同的引數返回相同輸出的函式。獲取使用者輸入會將程式的性質更改為不純。Haskell引入了IO型別來區分不純函式和純函式。帶有IO型別的函式宣告表明它是一個與外部世界互動的不純函式。“()”是IO操作的引數,描述了IO函式的返回值。

IO函式的示例包括print、putStr、getLine、getChar

演算法步驟

  • 使用合適的IO函式從使用者處獲取輸入。

  • 使用read函式將輸入讀取為數字。

  • 將輸入值載入到變數中。

  • 列印使用者輸入。

使用 Getline 方法從標準輸入讀取數字

示例

使用getLine方法從標準輸入讀取數字的程式

main :: IO() main = do print("Please enter a number") -- taking user input using getLine function line <- getLine -- typecasting string to integer let number = (read line:: Int) -- printing the number print ("The input number is:") print number

輸入

"Please enter a number"
25

輸出

“The inputted number is:”
123

在上面的程式中,我們呼叫了getLine函式(這是一個IO函式)來獲取使用者輸入。我們將輸入值載入到變數line中。我們使用read函式將變數line型別轉換為整數。最後,我們列印輸入的數字。

注意- 必須使用語法“<-”將IO函式的值載入到變數中。

讀取使用者輸入的數字列表

示例

讀取數字列表的程式

-- function declaration readNums :: [Int]->IO () -- function definition readNums xs = do putStrLn("Please enter another number in the list") input<-getLine let number = (read input :: Int) if (number == -1) then do print ("The Input List of numbers are:") print (init xs) else do readNums (number:xs) main :: IO() main = do -- initializing list with initial value let list = [-1] -- invoking readNums function readNums list

輸入

Please enter another number in the list list
1
Please enter another number in the list list
2
Please enter another number in the list list
33
Please enter another number in the list list
-1

輸出

"The Input List of numbers are:"
[33,2,1]

在上面的程式中,我們聲明瞭一個函式readNums,它接受整數列表作為輸入並返回一個IO操作。在函式定義中,它接受一個引數xs,這是一個整數列表。接下來,使用getLine函式從使用者處獲取輸入,並將輸入值載入到變數input中。我們將變數input型別轉換為整數,並將值載入到變數number中。我們檢查數字的值是否等於“-1”。如果數字的值等於“-1”,我們將列印列表xs的初始部分。如果數字不等於“-1”,我們將使用連線了數字和列表xs的引數遞迴呼叫readNums函式。也就是說,該函式將輸入值載入到列表中,直到輸入值等於“-1”。我們在main函式中呼叫了此函式。

結論

在本教程中,我們討論瞭如何在Haskell程式語言中從標準輸入讀取數字。

更新於:2022年10月27日

瀏覽量 1K+

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.