range   scheme


Defined in:  https://github.com/lambdamusic/extempore-extensions/blob/main/init/init_lisp.xtm

Implementation

;
; range (like in Python)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Example:
; --------
; (range 1 10) => '(1 2 3 4 5 6 7 8 9 10)
; (range 1 10 2) => '(1 3 5 7 9)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define range
  (lambda (min max . step)
   ;  (println min max step)
    (if (null? step)
        (set! step '(1))) 
    (when (<= min max)
      (cons min (range (+ min (car step)) max (car step))))))


Back to Index