Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

for/seq for sequence generating through for loops

View for-seq.rkt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
#lang racket
(require racket/generator)
 
(define-syntax (for/seq stx)
(syntax-case stx ()
[(_ clauses . body)
#`(in-generator
(for/fold/derived #,stx
()
clauses
(define d (let () . body))
(yield d)
(values)))]))
 
(define seq1 (for/seq ([i (in-range 3)]
[j (in-list '(a b c))])
(displayln "here")
(list j (* i i))))
 
 
(define-syntax (for*/seq stx)
(syntax-case stx ()
[(_ clauses . body)
#`(in-generator
(for*/fold/derived #,stx
()
clauses
(define d (let () . body))
(yield d)
(values)))]))
 
 
(define seq2 (for*/seq ([i (in-range 3)]
[j (in-list '(a b c))])
(displayln "here")
(list j (* i i))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.