Haskell 程序将数组传递给函数


在 Haskell 中,我们将通过使用用户定义函数将数组传递给函数。在所有示例中,我们将把数组传递给用户定义的函数以执行某些任务。这些函数可以是 sumArray、maxArray、minArray、countEvens 等。

在这种方法中,创建了用户定义的函数,这些函数将包含具有某些返回值的函数定义,并通过将数组作为参数传递给它来调用。

算法

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

  • 步骤 2 − 程序执行将从主函数开始。main() 函数控制整个程序。它被写成 main = do。在主函数中,通过将数组作为参数传递给它来调用用户定义的函数。

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

示例 1

在这个例子中,sumArray 函数将一个 Int 值数组作为参数,并返回数组中所有元素的总和。main 函数通过传递数组 [1, 2, 3, 4, 5] 并打印结果来演示 sumArray 函数的使用。

sumArray :: [Int] -> Int
sumArray xs = sum xs

main :: IO ()
main = do
   putStrLn "Sum of all elements in an array:"
   let xs = [1, 2, 3, 4, 5]
   let arrSum = sumArray xs
   putStrLn (show xs ++ " has a sum of " ++ show arrSum)

输出

Sum of all elements in an array:
[1,2,3,4,5] has a sum of 15

示例 2

在这个例子中,maxArray 函数将一个整数数组 xs 作为参数,并使用 maximum 函数返回最大元素。main 函数创建一个数组 xs,使用 maxArray 函数计算最大元素并打印结果。

maxArray :: [Int] -> Int
maxArray xs = maximum xs

main :: IO ()
main = do
   putStrLn "Maximum element in an array:"
   let xs = [1, 2, 3, 4, 5]
   let arrMax = maxArray xs
   putStrLn (show xs ++ " has a maximum element of " ++ show arrMax)

输出

Maximum element in an array:
[1,2,3,4,5] has a maximum element of 5

示例 3

在这个例子中,minArray 函数将一个整数数组 xs 作为参数,并使用 minimum 函数返回最小元素。main 函数创建一个数组 xs,使用 minArray 函数计算最小元素并打印结果。

minArray :: [Int] -> Int
minArray xs = minimum xs

main :: IO ()
main = do
   putStrLn "Minimum element in an array:"
   let xs = [1, 2, 3, 4, 5]
   let arrMin = minArray xs
   putStrLn (show xs ++ " has a minimum element of " ++ show arrMin)

输出

Minimum element in an array:
[1,2,3,4,5] has a minimum element of 1

示例 4

在这个例子中,countEvens 函数将一个整数数组 xs 作为参数,并通过使用 filter 函数过滤偶数元素并返回结果列表的长度来返回数组中偶数元素的数量。main 函数创建一个数组 xs,使用 countEvens 函数计算偶数元素的数量并打印结果。

countEvens :: [Int] -> Int
countEvens xs = length (filter even xs)

main :: IO ()
main = do
   putStrLn "Number of even elements in an array:"
   let xs = [1, 2, 3, 4, 5]
   let count = countEvens xs
   putStrLn (show xs ++ " has " ++ show count ++ " even elements")

输出

Number of even elements in an array:
[1,2,3,4,5] has 2 even elements

示例 5

在这个例子中,reverseArray 函数将一个整数数组 xs 作为参数,并使用 reverse 函数返回反转后的数组。main 函数创建一个数组 xs,使用 reverseArray 函数计算反转后的数组并打印结果。

reverseArray :: [Int] -> [Int]
reverseArray xs = reverse xs

main :: IO ()
main = do
   putStrLn "Reversed array:"
   let xs = [1, 2, 3, 4, 5]
   let reversed = reverseArray xs
   putStrLn (show xs ++ " reversed is " ++ show reversed)

输出

Reversed array:
[1,2,3,4,5] reversed is [5,4,3,2,1]

结论

在 Haskell 中,数组是同一类型值的集合,存储在连续的内存位置中。数组可以被认为是一系列值,其中每个值都与一个索引相关联。Haskell 中的数组使用 [a] 类型表示,其中 a 是数组中元素的类型。

用户定义函数是由程序员创建以执行特定操作的函数。用户可以通过传递任何所需的参数并在函数定义中返回某些值来根据需要定义函数。传递的参数可以是整数、字符串或任何值的数组。

更新于: 2023年3月1日

555 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.