请使用递归的形式,写出一个名为 ’sumAcc‘ 的函数,它用一个累积的参数来使一个list的整数加起来求和.

首页/题库/497℃/2024-04-23 11:41:08

请使用递归的形式,写出一个名为 ’sumAcc‘ 的函数,它用一个累积的参数来使一个list的整数加起来求和.

原题是:Write a function called 'sumAcc' in recursive style that uses an accumulating parameter to sum a list of integers.

优质解答:

这题有没有像那个matches那样有个示例,这个accumulating parameter是类似foldl的那种累加初始数,还是直接就是对list里面的数做累加,无法判断

再问: 没有给例子,但应该是对list里面是数做累加。如果是直接在list里的数做累加,可以使用accumulating parameter吗?如果可以的话,就应该是直接累加,能麻烦您先这样考虑做一下吗?谢谢您!

再答: sumAcc :: [Int] -> Int

sumAcc [] = 0

sumAcc (x:xs) = x + sumAcc xs

sumAcc1 :: Int -> [Int] -> Int

sumAcc1 a b = a + sumAcc b

sumAcc 是计算一个整数列表里面所有的整数值

sumAcc1 是有一个初始值,然后再加上列表里面的整数值

题意我搞不清楚具体该用哪个,就一起写给你了,多半应该是第二个sumAcc1

不直接用递归的话,也可以

sumAcc = foldl (+) 0

sumAcc1 = foldl (+)

我来回答修改/报错/举报内容!

猜你喜欢

一个神奇的在线题库网,分享各类考试题库、题目资料与资料答案、在线搜题与练习等!
本网站部分内容、图文来自于网络,如有侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
Copyright © 2021-2024 315题库 All Rights Reserved