'From VisualWorks(R) Release 2.0 of 4 August 1994 on 7 October 1995 at 12:45:49 pm'! !Collection methodsFor: 'enumerating'! do: iterationBlock andBetweenDo: intermediateBlock "Evaluate the once for each element in the receiver, evaluating the between successive pairs. If the receiver is empty, neither the iteration nor the intermediate blocks will not be evaluated. If the receiver contains a single element, the intermediate block will not be evaluated, even though the iteration block will be." | first | first := true. self do: [:each | first ifTrue: [first := false] ifFalse: [intermediateBlock value]. iterationBlock value: each]! !