Add for/sum: and for/product: to TR.
original commit: 6a8011854be3c67dc9fe0f3b1e7ba119a28500bd
This commit is contained in:
parent
aae4f8c4b5
commit
fea766dfbb
|
@ -113,3 +113,32 @@
|
|||
(k : Integer '(100 200 300)))
|
||||
(+ acc i j k))
|
||||
1998)
|
||||
|
||||
(check =
|
||||
(for/sum: : Integer
|
||||
([i : Integer (in-range 10)])
|
||||
i)
|
||||
45)
|
||||
(check =
|
||||
(for/sum: : Integer
|
||||
([i : Integer (in-range 10)]
|
||||
[j : Integer (in-range 10)])
|
||||
(+ i j))
|
||||
90)
|
||||
|
||||
(check =
|
||||
(for/product: : Integer
|
||||
([i : Integer (in-range 10)])
|
||||
i)
|
||||
0)
|
||||
(check =
|
||||
(for/product: : Integer
|
||||
([i : Integer (in-range 1 10)])
|
||||
i)
|
||||
362880)
|
||||
(check =
|
||||
(for/product: : Integer
|
||||
([i : Integer (in-range 1 10)]
|
||||
[j : Integer (in-range 1 10)])
|
||||
(+ i j))
|
||||
185794560)
|
||||
|
|
|
@ -668,7 +668,9 @@ This file defines two sorts of primitives. All of them are provided into any mod
|
|||
(for/first: for/first)
|
||||
(for/last: for/last)
|
||||
(for/vector: for/vector)
|
||||
(for/flvector: for/flvector))
|
||||
(for/flvector: for/flvector)
|
||||
(for/sum: for/sum)
|
||||
(for/product: for/product))
|
||||
|
||||
;; Unlike with the above, the inferencer can handle any number of #:when
|
||||
;; clauses with these 2.
|
||||
|
|
|
@ -147,6 +147,8 @@ variants.
|
|||
@defform[(for/or: type-ann-maybe (for:-clause ...) expr ...+)]
|
||||
@defform[(for/first: type-ann-maybe (for:-clause ...) expr ...+)]
|
||||
@defform[(for/last: type-ann-maybe (for:-clause ...) expr ...+)]
|
||||
@defform[(for/sum: type-ann-maybe (for:-clause ...) expr ...+)]
|
||||
@defform[(for/product: type-ann-maybe (for:-clause ...) expr ...+)]
|
||||
@defform[(for*/list: type-ann-maybe (for:-clause ...) expr ...+)]
|
||||
@defform[(for*/hash: type-ann-maybe (for:-clause ...) expr ...+)]
|
||||
@defform[(for*/hasheq: type-ann-maybe (for:-clause ...) expr ...+)]
|
||||
|
|
Loading…
Reference in New Issue
Block a user