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
ます。これどうやってするの?