Racket 方案计算器负数

Racket 方案计算器负数,racket,Racket,你能帮我举一个函数代码示例吗?取一个整数数组,并给出该数组的负数输出 提前谢谢 用户将输入此 (萨姆内格(3-5-2b-51b)) 并将得到解决方案-12 Racket中惯用的解决方案是使用内置的高阶过程-注意,首先必须从列表中选择负数(它不是数组!),然后添加负数,这可以通过以下过程精确表示: (define (sumNeg lst) (apply + (filter (λ (x) (and (number? x) (negative? x))) lst))) 为了避免

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

(萨姆内格(3-5-2b-51b)) 并将得到解决方案-12


Racket中惯用的解决方案是使用内置的高阶过程-注意,首先必须从列表中选择负数(它不是数组!),然后添加负数,这可以通过以下过程精确表示:

(define (sumNeg lst)
  (apply +
         (filter (λ (x) (and (number? x) (negative? x))) lst)))
为了避免双重迭代,我们可以使用:

或者更惯用的说法是,我们可以使用Racket的:

无论如何,它的工作原理与预期相符:

(sumNeg '(3 -5 -2 b -5 1 b))
=> -12
”(3-5-2…
是一个列表,而不是数组。
(define (sumNeg lst)
  (for/sum ([x lst]
            #:when (and (number? x)
                        (negative? x)))
    x))
(sumNeg '(3 -5 -2 b -5 1 b))
=> -12