On Wed, May 30, 2001 at 08:11:24AM +0900, Stefan Matthias Aust wrote: > Juha Pohjalainen <voidjump / nic.fi> wrote: > > Perhaps I don't understand what you want to achieve, but to express it > would be own words aehm code you want to say Sorry about my bad english, but don't worry I'm bad explainer in finnish too. :-) Nope, I dont want to own words, just use them. But what I wanted with the idea of "try-return-or-what-so-ever-name-shall-be" is simple command to yield power of finishing things at sublevel instead of every "return" level making if-then-returns. Consider following pseudo-mailonly-code: | def mainLevelFunction | value = 42 | list = [4,2,42] | # more preparation code here | result = firstSublevelFunction value | other = firstSublevelFunction list | # then do something with that result here | end | | : | : | | def firstSublevelFunction value | tryreturn secondSublevelFunction1 value { |variable| isGood variable } | tryreturn secondSublevelFunction2 value | tryreturn secondSublevelFunction3 value, nil | tryreturn secondSublevelFunction4 value, value | raise "Can not do it" | end | | : | : | | def secondSublevelFunction2 value | tryreturn thirdSublevelFunction2 value | tryreturn thirdSublevelFunction4 value.to_a | tryreturn thirdSublevelFunction6 value | return nil | end | | : | : | | def thirdSublevelFunction4 value | if value.empty? | return nil | end | # do you magic here | return result | end If, for some reason, all other functions in the middle of chain fail, but our trustworthy thirdSublevelFunction4, and that function sees that "hmm, this is not empty value, so lets solve it" and solves it, then those functions, which really are not intrested in result (they are only intrested that result is finally found) just pass this "true result" up to chain until there is someone who is intrested in that value. So, point of decision is at thirdSublevelFunction4 and point of usage is at mainLevelFunction, and everything between is just a great grey cloud. > > if t = (expression) then return t end > or > return t if t = (expression) > > compared to > > tryreturn expression If-then-return has more points for errors and does not clearly state your intention. Hmm, if that tryreturn replaces if-then... part, maybe that code should read: ifreturn expression Does that state better what I wanted to achieve? > is this really worth a new statement? It was just an idea, and it seems to me that nobody likes it so then maybe it is not worth it. > bye > -- > Stefan Matthias Aust \/ Truth Until Paradox "Bye, and have a great day", says Jippo (finally!). -- __________________________________________________________________ [ pub 1024/951AFAF5 1995/12/12 Juha Pohjalainen <jmp / iki.fi> ] [ fingerprint 41 56 7F F9 8E EC 16 35 BB 42 EF A7 DF 19 FA 31 ] [__ http://www.iki.fi/jmp/ ________________ GSM +358 40 570 1179 __]