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编程语言中从标准输入读取数字。