Hello, stream-cons from racket's standard racket/stream.rkt is implemented as a macro -stream-cons wrapped into a case-lambda. This wrapping makes it strict in both arguments, contrary to the traditional behaviour from SICP, srfi-40, srfi-41 etc. For example:
> (define (foo) (display "called\n") empty-stream) > (stream-cons 1 (foo)) called #<sequence> > (require srfi/41) > (stream-cons 1 (foo)) #<stream> Is this intentional? Is there a way to get traditional lazy behaviour other than by implementing it with make-do-sequence or generator? Eugene _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users