Haskell 程序反转数字
本教程讨论了在 Haskell 编程语言中编写反转数字的程序。
在本教程中,我们将看到两种在 Haskell 中实现反转数字程序的方法。
- 使用列表函数 reverse 反转数字的程序。
- 使用递归函数反转数字的程序。
示例 1
使用列表函数 reverse 反转数字的程序。
-- function declaration reverseNumber :: Int->Int -- function definition reverseNumber n = k where temp = reverse (show n) k = read temp :: Int main :: IO() main = do -- declaring and initializing a variable number let number = 123 -- invoking the function reverseNumber and printing the returned number print ("The reverse number for the number " ++ show number ++ " is:") print (reverseNumber number)
输出
"The reverse number for the number 123 is:" 321
在上述程序中,我们声明了一个名为 reverseNumber 的函数,它接收一个整数作为参数并返回一个整数。在函数定义中,我们接收一个参数 n。我们使用 show 函数将整数 n 解析为字符串,并调用 show 函数返回值的 reverse 函数。并将结果加载到变量 temp 中。由于 Haskell 中的字符串是字符列表。reverse 函数接收列表作为输入并返回其反转结果。我们使用 read 函数将字符串 temp 解析为整数,并将其加载到变量 k 中,该变量由函数返回。即 reverseNumber 函数将整数转换为字符串,使用字符串函数 reverse 反转字符串,将其重新转换为数字,并返回该数字。
在主函数中,我们声明并初始化了一个数字。最后,我们使用该数字作为参数调用 reverseNumber 函数并打印返回的输出。
示例 2
使用递归函数反转数字的程序。
-- function declaration reverseNumber :: Int->Int->Int -- function definition -- base case reverseNumber 0 revnum = revnum reverseNumber num revnum = reverseNumber x y where k = mod num 10 y = revnum * 10 + k x = div num 10 main :: IO() main = do -- declaring and initializing variable number let number = 123 -- invoking the function reverseNumber and printing the returned result print ("The reverse number for the number " ++ show number ++ " is:") print (reverseNumber number 0)
输出
"The reverse number for the number 123 is:" 321
在上述程序中,我们声明了一个名为 reverseNumber 的函数,它接收两个整数作为参数并返回一个整数。在函数定义中,我们接收两个整数参数 num 和 revnum。我们使用 mod 函数提取 num 中个位上的数字,并将其加载到变量 k 中。我们将参数 revnum 乘以 10 并加上数字 k,并将结果加载到变量 y 中。将参数 rev 除以 10 并将其加载到变量 x 中。最后,我们返回对 reverseNumber 函数的递归调用,参数为 x 和 y。递归调用会一直执行,直到函数达到基本情况,其中第一个参数为 0,函数返回第二个参数。在主函数中,我们声明并初始化了一个数字。最后,我们使用该数字作为参数调用 reverseNumber 函数并打印返回的输出。
结论
在本教程中,我们讨论了两种在 Haskell 编程语言中实现反转数字程序的方法。