Haskell程序:创建带参数和返回值的函数


在本文中,我们将了解如何使用用户自定义函数在 Haskell 中创建一个带参数和返回值的函数。用户自定义函数的定义包含函数定义以及某个返回值,并通过传递所需的参数来调用。这些函数根据定义执行各种操作。

在所有示例中,我们将定义用户自定义函数来执行某些任务,这些任务将返回某个值,并传递一些参数,例如 add、mult、maxOfTwo 和其他函数。

算法

  • 步骤 1 - 通过编写其带有返回值的定义来定义用户自定义函数。

  • 步骤 2 - 程序执行将从主函数开始。main() 函数控制整个程序。它写成 main = do。在主函数中,通过向其传递所需的参数来调用用户自定义函数。

  • 步骤 3 - 调用函数后,结果将打印到控制台。

示例 1

在这个示例中,add 函数接受两个 Int 参数 a 和 b,并返回它们的和作为输出。主函数演示了如何使用 add 函数,通过传递 x 和 y 作为参数并打印结果。add 函数的返回类型为 Int。

add :: Int -> Int -> Int
add a b = a + b

main :: IO ()
main = do
   putStrLn "Sum of two numbers:"
   let x = 5
   let y = 10
   let total = add x y
   putStrLn (show x ++ " plus " ++ show y ++ " is " ++ show total)

输出

Sum of two numbers:
5 plus 10 is 15

示例 2

在这个示例中,mult 函数接受两个 Int 参数 a 和 b,并返回它们的乘积作为输出。主函数演示了如何使用 mult 函数,通过传递 x 和 y 作为参数并打印结果。mult 函数的返回类型为 Int。

mult :: Int -> Int -> Int
mult a b = a * b

main :: IO ()
main = do
   putStrLn "Product of two numbers:"
   let x = 5
   let y = 10
   let product = mult x y
   putStrLn (show x ++ " times " ++ show y ++ " is " ++ show product)

输出

Product of two numbers:
5 times 10 is 50

示例 3

在这个示例中,maxOfTwo 函数接受两个 Int 参数 a 和 b,并返回它们中的最大值作为输出。主函数演示了如何使用 maxOfTwo 函数,通过传递 x 和 y 作为参数并打印结果。maxOfTwo 函数的返回类型为 Int。

maxOfTwo :: Int -> Int -> Int
maxOfTwo a b = max a b

main :: IO ()
main = do
   putStrLn "Maximum of two numbers:"
   let x = 5
   let y = 10
   let maximum = maxOfTwo x y
   putStrLn (show x ++ " and " ++ show y ++ " has a maximum of " ++ show maximum)

输出

Maximum of two numbers:
5 and 10 has a maximum of 10

示例 4

在这个示例中,longestString 函数接受字符串列表作为参数,并返回最长字符串的长度作为输出。主函数演示了如何使用 longestString 函数,通过传递字符串列表作为参数并打印结果。longestString 函数的返回类型为 Int。

longestString :: [String] -> Int
longestString xs = maximum (map length xs)

main :: IO ()
main = do
   putStrLn "Length of the longest string in a list:"
   let xs = ["hello", "world", "this", "is", "Haskell"]
   let longest = longestString xs
   putStrLn (show xs ++ " has a longest string with a length of " ++ show longest)

输出

Length of the longest string in a list:
["hello","world","this","is","Haskell"] has a longest string with a length of 7

示例 5

在这个示例中,sumEven 函数接受整数列表作为参数,并返回偶数整数之和作为输出。主函数演示了如何使用 sumEven 函数,通过传递整数列表作为参数并打印结果。sumEven 函数的返回类型为 Int。

sumEven :: [Int] -> Int
sumEven xs = sum (filter even xs)

main :: IO ()
main = do
   putStrLn "Sum of all even numbers in a list:"
   let xs = [1, 2, 3, 4, 5]
   let evenSum = sumEven xs
   putStrLn (show xs ++ " has a sum of even numbers of " ++ show evenSum)

输出

Sum of all even numbers in a list:
[1,2,3,4,5] has a sum of even numbers of 6

结论

在 Haskell 中,用户自定义函数是由程序员创建的用于执行特定操作的函数。用户可以根据需要定义函数,通过传递任何所需的参数并在函数定义中返回某个值。Haskell 中带有某些参数和返回值的用户自定义函数是一个函数,它接受一些输入,并将其对应的输出作为值返回。

更新于:2023年3月1日

浏览量:575

开启您的职业生涯

完成课程获得认证

开始学习
广告