www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

for-star-list-star.scrbl (1168B)


      1 #lang scribble/manual
      2 @require[@for-label[phc-toolkit/stx
      3                     racket/base]]
      4 
      5 @title{for*/list*}
      6 @author{@author+email["Suzanne Soy" "racket@suzanne.soy"]}
      7 
      8 @defmodule[phc-toolkit/untyped/for-star-list-star]
      9 
     10 @defform[(for*/list* [sequences …] . body)
     11          #:grammar ([sequences
     12                      (* [id seq-expr] …)
     13                      ([id seq-expr] …)])]{
     14  This form allows iteration over sequences, collecting
     15  nested lists as the final result. Each @racket[sequences]
     16  group of @racket[[id seq-expr]] starts a new level of
     17  nesting. When the @racket[*] is present at the beginning of
     18  a group, its bindings are evaluated in sequence (like 
     19  @racket[let*] and @racket[for*/list]), otherwise they are
     20  evaluated in parallel (like @racket[let] and 
     21  @racket[for/list]).
     22 
     23  This form is equivalent to:
     24  @racketblock[
     25  (for/list ([id seq-expr …])
     26    (for/list ([id seq-expr …])
     27      (for/list ([id seq-expr …])
     28     29          (for/list ([id seq-expr …])
     30            body))))]
     31  except when a group of @racket[[id seq-expr]] starts with
     32  a @racket[*], then @racket[for*/list] is used for that
     33  group instead of @racket[for/list].}