How would you write the following method in Scheme (assuming that there is something like a #at:ifAbsent: in Scheme)?
  Object>>foo    bar := zork at: 1 ifAbsent: [ ^ 2 ].    self andNowForSomethingCompletelyDifferent: bar.
Either use a continution (call/cc), or check whether 1 is in zork, or check if looking for 1 return nil. But basically, it is likely that you will have one function for the the lookup, and another that does the andNowForSomethingCompletelyDifferent:.
You are changing the example, you were supposed to use #at:ifAbsent: :-) So this tells us what we all expected: If there is non-local return, people use other patterns. I doubt though that this generally leads to smaller methods or easier to understand code. Lukas -- Lukas Renggli www.lukas-renggli.ch