From: ts Date: 2000-10-22T20:50:41+09:00 Subject: [ruby-talk:5752] Re: Some newbye question >>>>> "G" == Guy N Hurst writes: I see 2 problems with your idea G> block{|a~,b~| if someone has defined a def 'block', it will have a problem no ? G> b # block variable, has value 12 G> a # block variable, has value 24 You can't move the block with cut/paste because the value of 'a', and 'b' depend of the previous variable 'a' and 'b', no ? G> b = 24 G> a = 36 G> Could this be implemented? You can perhaps implement a 'let' if you re-use an existing keyword like for example 'do' Something like this : pigeon% cat b.rb #!./ruby def toto(a) p "1 #{a}" do(a = 24, b = 2) p "2 #{a}, #{b}" do a = a + 2, b = a + 10 p "3 #{a}, #{b}" end p "4 #{a}, #{b}" end p "5 #{a}" end toto(12) pigeon% pigeon% b.rb "1 12" "2 24, 2" "3 26, 34" "4 24, 2" "5 12" pigeon% You have no incompatibilities, because you can't write actually 'do(a) ... end' Unfortunately : * now you have 3 'do' :-( * you need 2 new nodes Guy Decoux