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