[#6363] Re: rescue clause affecting IO loop behavior — ts <decoux@...>

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

17 messages 2000/11/14
[#6367] Re: rescue clause affecting IO loop behavior — David Alan Black <dblack@...> 2000/11/14

Hello again --

[#6582] best way to interleaf arrays? — David Alan Black <dblack@...>

Hello --

15 messages 2000/11/26

[#6646] RE: Array Intersect (&) question — Aleksi Niemel<aleksi.niemela@...>

Ross asked something about widely known and largely ignored language (on

23 messages 2000/11/29
[#6652] RE: Array Intersect (&) question — rpmohn@... (Ross Mohn) 2000/11/29

aleksi.niemela@cinnober.com (Aleksi Niemel) wrote in

[#6723] Re: Array Intersect (&) question — Mathieu Bouchard <matju@...> 2000/12/01

> >Use a hash. Here's code to do both and more. It assumes that

[#6656] printing/accessing arrays and hashes — raja@... (Raja S.)

I'm coming to Ruby with a Python & Common Lisp background.

24 messages 2000/11/30

[ruby-talk:6513] Question about the behavior of write attributes in blocks

From: "Christoph Rippel" <chr@...>
Date: 2000-11-22 05:41:30 UTC
List: ruby-talk #6513
Hi,

I am trying to understand iterators and blocks in Ruby.  Could someone
explain to me the logic behind the output

>try fail fail
>succ succ succ

of the following program? How can I fix my tree class to get the ``right''
behavior?

***********************
# A binary tree class
class Bt
        def  initialize( cont, l = nil, r = nil )
                @data=cont
                @left=l
                @right=r
        end
        def each
              yield data
              left.each   { |l| yield l }
              right.each { |r| yield r }
        end
        attr_accessor( :left,  :right, :data)
end

module Each
        def each
        end
end

nil.extend(Each)

root = Bt.new ( "fail ", Bt.new "fail ", Bt.new "fail ")
root.data="try "                            # ``data'' is changed
root.each { |a|  a = "try " }            #  ``data''  is not changed
root.each { |a|  print a  }
puts
root.each { |a|  a.replace "succ " } # ``data'' is changed
root.each { |a|  print a  }
*****************************************
Thanks,
        Christoph


In This Thread

Prev Next