Мне только что пригодился трюк Кент Бека.
Проблема в обходе соседних элементов коллекции. Т.е. я хочу выполнить некоторый код для 1-го и 2-го, 2-го и 3-го и т.д. элементов коллекции.
self children inject: nil into: [:eachPrevious :eachNext | eachPrevious notNil ifTrue: [...]. eachNext]
(Кент Бек)
Я написал метод
SequenceableCollection>>doBettween: binaryBlock self inject: nil into: [:eachPrevious :eachNext | eachPrevious ifNotNil: [binaryBlock value: eachPrevious value: eachNext]. eachNext]
т.к. уже не раз испытывал в нем необходимость.