Okay, here are a couple of complex examples for group et al.:

define-syntax list-of
  syntax-rules (is in)
    ; base case
    \
    . list-of x
    . \ list x
    ; handle (var in x) clause
    \
    . list-of x
    .   var in expr
    .   clauses \ ...
    . \ concatenate
    . .   map
    . .     lambda (var)
    . .       list-of x
    . .         clauses \ ...
    . .     expr
    ; handle (var is x) clause
    \
    . list-of x
    .   var is expr
    .   clauses \ ...
    . \ let ((var expr))
    . .   list-of x
    . .     clauses \ ...
    ; handle (pred? x) clause
    \
    . list-of x
    .   pred?(args ...)
    .   clauses \ ...
    . \ if pred?(args ...)
    . .    list-of x
    . .      clauses \ ...
    . .    '()

define xforce(promise)
  let ((content unbox(promise)))
    case car(content)
      (eager)
        cdr(content)
      (lazy)
        let*
          \
            promise* cdr(content)()
            content  unbox(promise)
          if not{ car(content) eqv? 'eager }
            begin
              set-car! content  car(unbox(promise*))
              set-cdr! content  cdr(unbox(promise*))
              set-box! promise* content
          xforce(promise)

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss

Reply via email to