[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: loop macro

	From: Daniel L. Weinreb <DLW@SCRC-QUABBIN.ARPA>

 	   Date: Wed, 5 Feb 86 12:01 EST
 	   From: Guy Steele <gls@THINK-AQUINAS.ARPA>

	    Okay, now here is a different perspective on the LOOP problem.  I
will play
 	   devil's advocate here and claim that the main purpose of LOOP is to
 	   duplicate the functionality of the sequence functions.  

	(1) Your message later goes on to say "This isn't operating on
	sequences, so I will render this as a DO loop."  This in no way
	supports the original thesis!  Many simple examples of LOOP don't
	operate on sequences:

 	 (loop for x from 3 to 6
  	      do (print x))

I think the best answer for this particular kind of example is the
following from Larry Masinter:

	We could enhance the sequence functions using Common Loops if we
	define default implementations for them which use only the methods
	that all ordered collections must follow, and then include new classes
	for Interval. This is the approach used successfully in Smalltalk for
	dealing with iteration.

In particular, how about:

(map #'print (interval 3 6))

Admittedly, many of GLS's other DO loops examples may be difficult or
inappropriate to rephrase this way.