# [plt-scheme] Please help test version 359.100

>*From plt-scheme-bounces at list.cs.brown.edu Tue Nov 14 13:55:51 2006
*>*(...)
*
>>* I don't think this is relevant. The true question is whether
*>>*
*>>* (+ (for-each add1 '()) (for-each sub1 '()))
*>>*
*>>* steps to
*>>*
*>>* (+ some-value some-value)
*>>*
*>>* or to
*>>*
*>>* (+ some-value some-different-value)
*
Since the value returned by "for-each" is left unspecified, some
implementations may choose to return zero value. So does MIT Scheme:
1 ]=> (for-each (lambda (x) x) '(1 2 3))
;No value
I suppose that this effect results from the "(values)" expression. If we
admit this, the second point is how to compare expressions resulting from the
"values" function. In MIT Scheme, the equality functions already return
false:
(eq? (values) (values)) ====> #f
(equal? (values) (values)) ====> #f
So it seems to me that unspecified values cannot be compared or composed
w.r.t. a portable way.
All the best,
J.-M. H.