Scheme 使生成列表从特定点开始

Scheme 使生成列表从特定点开始,scheme,racket,Scheme,Racket,所以我正在学习使用buid list 所以我写了一个函数: (define (count-from n k) (filter (lambda (n) (not(zero? n))) (build-list k (lambda (n) (add1 n))))) 按照惯例,构建列表从0开始,我知道如何排除0, 但我一直坚持的是如何让构建列表从一个特定的点开始 例如(从7 10开始计数)生成(列表7 8 9 10),而不是从1开始 注意:我不想使用任何递归或帮助函数……我想知道我是否可以简单地从构

所以我正在学习使用buid list

所以我写了一个函数:

(define (count-from n k)
(filter (lambda (n) (not(zero? n))) (build-list  k (lambda (n) (add1 n)))))
按照惯例,构建列表从0开始,我知道如何排除0, 但我一直坚持的是如何让构建列表从一个特定的点开始 例如(从7 10开始计数)生成(列表7 8 9 10),而不是从1开始


注意:我不想使用任何递归或帮助函数……我想知道我是否可以简单地从构建列表和lambda中实现我所寻求的功能。

因此我设法解决了这个问题,所以对于任何想知道的人来说,这就是我所做的:

(define (count-from n k)
 (filter (lambda (y) (>= y n)) (filter (lambda (n) (not(zero? n))) 
   (build-list k (lambda (n) (add1 n))))))

可以编写一个更简单的解决方案,如下所示:

(define (count-from n k)
  (build-list (add1 (- k n))
              (lambda (i) (+ i n))))
例如:

(count-from 7 10)
=> '(7 8 9 10)