在 DrRacket 中使用自然数列表,并在列表中返回十列中为零的值



>编写一个函数(零十L(,该函数使用(Nat列表(并返回L中在10s列中具有零的所有值。

例如,109、4000 和 24601 在 10s 列中都有零,但 1011、42 和 9 没有。

只需删除最后一个数字并检查其余部分是否可以被 10 整除。然后使用过滤器:

(define (divisible? n d) (= 0 (remainder n d)))
(define (zero-ten n)
  (let ((n1 (quotient n 10)))
    (and (positive? n1)
         (divisible? n1 10))))
(define (filter-zero-ten xs)
  (filter zero-ten xs))

现在(filter-zero-ten '(109 4000 24601 1011 42 9))返回'(109 4000 24601)

最新更新