Allow integers as sequences in TR.

original commit: 8509b81f4701dbaa06f5b113b431768430db5039
This commit is contained in:
Vincent St-Amour 2011-11-30 16:35:35 -05:00
parent 2db9b65576
commit a4b5d5d935
2 changed files with 28 additions and 0 deletions

View File

@ -160,3 +160,26 @@
([i : Integer (in-range 1 10)])
i)
362880)
;; Integers as sequences.
(check =
(for/sum: : Integer
([i : Byte 4])
i)
6)
(check =
(for/sum: : Integer
([i : Index (ann 4 Index)])
i)
6)
(check =
(for/sum: : Integer
([i : Nonnegative-Fixnum (ann 4 Fixnum)])
i)
6)
(check =
(for/sum: : Integer
([i : Natural (ann 4 Integer)])
i)
6)

View File

@ -64,6 +64,11 @@
(Un (->* a Univ) (-val #f))
(Un (->* (cons Univ a) Univ) (-val #f)))))])
(cl->*
(-> Univ -Byte (seq-vals (list -Byte)))
(-> Univ -Index (seq-vals (list -Index)))
;; Generous. Negative numbers aren't allowed.
(-> Univ -Fixnum (seq-vals (list -NonNegFixnum)))
(-> Univ -Int (seq-vals (list -Nat)))
(-> Univ (-seq a) (seq-vals (list a)))
(-> Univ (-seq a b) (seq-vals (list a b))))))]
;; in-range