Haskell 程序将数组传递给函数
在 Haskell 中,我们将使用用户定义函数将数组传递给函数。在所有示例中,我们将向用户定义函数传递一个数组来执行某些任务。这些函数可以是 sumArray、maxArray、minArray、countEvens 等。
在此方法中,将创建用户定义函数,该函数将包含具有一些返回值的函数定义,并通过将数组作为参数传递给它来调用它。
算法
步骤 1 - 用户定义函数通过编写具有返回值的定义来定义。
步骤 2 - 程序执行将从主函数开始。main() 函数完全控制程序。它写为 main = do。在主函数中,通过将数组作为参数传递给用户定义函数来调用它。
步骤 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 作为参数,并使用最小函数返回最小元素。主函数创建数组 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 是数组中元素的类型。
用户定义函数是由程序员创建的用于执行特定操作的函数。用户可以根据需要通过传递任何所需的参数并在函数定义中返回一些值来定义函数。传递的参数可以是整数、字符串或任何值数组。