Email list hosting service & mailing list manager


FOR-EACH is missing from the reference implementation of SRFI 1 Michael Sperber 06 Sep 2003 11:34 UTC

The reference implementation is missing a definition of FOR-EACH as
specified in the document.  Here is one.  (I've tried, as best as I
could, to imitate Olin's style.)

(define (for-each f lis1 . lists)
  (check-arg procedure? f for-each)
  (if (pair? lists)
      (let recur ((lists (cons lis1 lists)))
	(receive (cars cdrs) (%cars+cdrs lists)
	  (if (pair? cars)
	      (begin
		(apply f cars)		; Do head first,
		(recur cdrs)))))	; then tail.

      ;; Fast path.
      (let recur ((lis lis1))
	(if (not (null-list? lis))
	    (begin
	      (f (car lis))		; Do head first,
	      (recur (cdr lis)))))))	; then tail.

Olin, if you're there---I'd be happy to put this in the reference
implementation of srfi.schemers.org if and when I have your OK.

--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla