chez-scheme

display working out of order in Chez Scheme


I'm using chez 9.5.4 on a Mac.

The following code:

;; demo.ss
(map display (list "this " "is " "weird "))

does this:

$ chez --script demo.ss
weird this is 

Why the accidental Yoda?

How do I prevent this?

It works as expected in Chicken Scheme.


Solution

  • As answered by u/bjoli on reddit:

    Your code is relying on unspecified behaviour: The order of map is unspecified.

    You want for-each.

    Chez has no stack overflow (like racket or guile). Doing a right fold with map means no (reverse ...) At the end. It is faster, except in some continuation-heavy code.

    Schemes without the expanding stack optimization all do a left fold. Like chicken.