Range now returns a List (and not a list)

This commit is contained in:
Jens Axel Søgaard 2012-07-03 14:01:19 +02:00
parent bfcd26228a
commit 68ec2ff4c2

View File

@ -1141,20 +1141,23 @@
(List))) (List)))
(define Range (define Range
; 0-based when only given imax
(case-lambda (case-lambda
[() [()
(list 'Range)] (list 'Range)]
[(imax) [(imax)
(if (number? imax) (range imax) `(Range ,imax))] (if (number? imax)
(list->List (range imax))
`(Range ,imax))]
[(imin imax) [(imin imax)
(if (and (number? imin) (number? imax)) (if (and (number? imin) (number? imax))
(range imin imax) (list->List (range imin imax))
`(Range ,imin ,imax))] `(Range ,imin ,imax))]
[(imin imax di) [(imin imax di)
(if (and (number? imin) (if (and (number? imin)
(number? imax) (number? imax)
(number? di)) (number? di))
(range imin imax di) (list->List (range imin imax di))
`(Range ,imin ,imax ,di))] `(Range ,imin ,imax ,di))]
[args `(Range . ,args)])) [args `(Range . ,args)]))
@ -1357,6 +1360,10 @@
; Solve-linear ; Solve-linear
(check-equal? (Solve-linear 2 3) '(List -3/2)) (check-equal? (Solve-linear 2 3) '(List -3/2))
(check-equal? (Solve-linear a b) (List (Minus (Quotient b a)))) (check-equal? (Solve-linear a b) (List (Minus (Quotient b a))))
; Range (as range in Racket)
(check-equal? (Range 5) (List 0 1 2 3 4))
(check-equal? (Range 2 5) (List 2 3 4))
(check-equal? (Range 2 10 3) (List 2 5 8))
) )