Reality check before I do something dumb and re-invent the wheel:

I often want to write a for loop where the first element is treated specially. 
In such cases, it would be nice to have a sequence that had a #t and then an 
infinite number of #f's, so I could write

(for ([s my-sequence] [first? <true-then-always-falses>]) …)

Hey, no problem! Mutable lists can be used as sequences. But--and here I feel 
as though my brains have suddenly vanished--I can't think of the nice short way 
to write

(mlist #t #f …)

I'd be sort of okay with writing

(mcons #t #0=(mcons #f #0#))

… but that's not allowed, either. 

Yes, of course I can do it the ugly way:

(define p1 (mcons #f 'bogus))
(set-mcdr! p1 p1)
(define true-then-falses (mcons #t p1))



Of course, it would be unbelievably easy to write an mlist syntactic form, but 
there *must* be a form that's been around for 150 years that already does this. 

Sorry to have forgotten Scheme,

John

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to