使用Haskell实现一个递归函数,计算一个列表中所有元素的和。
发布时间:2023-12-10 01:12:52
下面是一个使用Haskell编写的递归函数,用于计算一个列表中所有元素的和:
sumList :: [Int] -> Int sumList [] = 0 sumList (x:xs) = x + sumList xs
这个函数接受一个整数列表作为输入,并返回列表中所有元素的和。它使用模式匹配来处理两种情况:
1. 当输入列表为空时,即 [],函数直接返回0,表示和为0。
2. 当输入列表不为空时,即 (x:xs),其中 x 是列表的头部元素,xs 是剩余的尾部列表。函数递归调用自身,将剩余的列表作为参数传递给它,并将头部元素 x 加到递归调用的结果中。
使用例子如下:
main :: IO () main = do let list = [1, 2, 3, 4, 5] putStrLn $ "Input list: " ++ show list putStrLn $ "Sum of list: " ++ show (sumList list)
这个例子创建了一个整数列表 [1, 2, 3, 4, 5],并调用 sumList 函数来计算该列表的和。结果将打印输出。
运行上述代码,输出如下:
Input list: [1,2,3,4,5] Sum of list: 15
这证明了递归函数 sumList 能够正确地计算列表中所有元素的和。
