计划计算器负数

时间:2015-12-27 17:42:00

标签: racket

你能帮我一个示例函数代码取一个整数数组,并给出负数的数组输出 提前致谢 用户将输入此

  

(sumNeg'(3 -5 -2 b -5 1 b))   并将获得解决方案-12

1 个答案:

答案 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))