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+

开启你的职业生涯

通过完成课程获得认证

开始学习
广告