Haskell程序 将数组传递给函数

Haskell程序 将数组传递给函数

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

在这个方法中,用户定义的函数被创建,它将包含带有一些返回值的函数定义,并通过传递一个数组作为参数被调用。

算法

  • 第1步– 用户定义的函数是通过编写其定义和返回值来定义的。

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

  • 第3步 – 在函数被调用后,结果被打印到控制台。

例子1

在这个例子中,sumArray函数接收一个Int值的数组作为参数,并返回该数组中所有元素的总和。主函数通过传递一个数组[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 函数返回最小元素。主函数创建了一个数组 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函数返回反转的数组。主函数创建一个数组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是数组中元素的类型。

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程