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

haskellserver side programmingprogramming

在本文中,我们将了解如何使用用户定义函数在 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,并返回它们的乘积作为输出。main 函数演示了如何使用 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 中,具有一些参数和返回值的用户定义函数是一种接受一些输入并返回一个值作为其相应输出的函数。


相关文章