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

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.