Haskell程序 创建一个有参数和返回值的函数
在这篇文章中,我们将了解如何使用用户定义的函数在Haskell中创建一个带有参数和返回值的函数。用户定义的函数是指包含有一些返回值的函数定义,并通过传递所需参数来调用。这些函数按照定义执行各种操作。
在所有的例子中,我们将定义用户定义的函数来执行某些任务,这些任务将返回一些值,并通过一些参数,如add, mult, maxOfTwo和其他函数。
算法
- 第1步 – 用户定义的函数是通过编写其定义和返回值来定义的。
-
第2步 – 程序的执行将从主函数开始。main()函数拥有整个程序的控制权。它被写成main = do。在main函数中,用户定义的函数通过传递所需参数被调用。
-
第3步 – 在函数被调用后,结果被打印到控制台。
例1
在这个例子中,add函数接收两个Int参数a和b,并将它们的总和作为其输出返回。main函数演示了如何使用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,并将它们的最大值作为其输出返回。main函数演示了如何使用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函数将字符串列表作为参数,并将最大字符串的长度作为其输出返回。main函数演示了如何使用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 函数将整数列表作为参数,并将偶数整数之和的长度作为其输出返回。main 函数演示了如何使用 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中,一个带有一些参数和返回值的用户定义的函数是一个接受一些输入,并返回一个值作为其相应输出的函数。