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 中带有某些参数和返回值的用户自定义函数是一个函数,它接受一些输入,并将其对应的输出作为值返回。