我正在尝试在 Racket 中重新定义函数“范围”。
(define (my-range a b)
(if (> a b)
null
(cons a (my-range (+ 1 a) b))))
;; Test
(my-range 2 5)
;; -> (cons 2 (cons 3 (cons 4 (cons 5 empty))))
现在我想扩展my-range
如下:
(define (my-range a b step) ...)
例如(my-range 2 6 1)
-->(list 2 3 4 5)
第一个数字是a
,每个连续元素是通过添加step
到前一个元素生成的。序列在大于或等于 的元素之前停止b
。我怎样才能做到这一点?