你能帮我一个示例函数代码取一个整数数组,并给出负数的数组输出 提前致谢 用户将输入此
(sumNeg'(3 -5 -2 b -5 1 b)) 并将获得解决方案-12
答案 0 :(得分:0)
Racket中的惯用解决方案是使用内置的高阶程序 - 请注意,首先必须filter
列表中的负数(它不是数组! )然后添加它们,这通过以下过程精确表达:
phpinfo()
为避免双重迭代,我们可以使用foldl
:
(define (sumNeg lst)
(apply +
(filter (λ (x) (and (number? x) (negative? x))) lst)))
或者甚至更惯用,我们可以使用Racket的Iterations and Comprehensions:
(define (sumNeg lst)
(foldl (λ (x sum)
(if (and (number? x) (negative? x))
(+ x sum)
sum))
0
lst))
无论如何,它按预期工作:
(define (sumNeg lst)
(for/sum ([x lst]
#:when (and (number? x)
(negative? x)))
x))