On Nov 22, 2006, at 8:48 PM, Jason Mayer wrote:

> I thought I was going to get to contribute, but then I got stuck.  I
> installed the latest ruby, wrote a quick program that I thought  
> would do it,
> and it didn't.  So I expanded on the program, trying to figure out  
> what was
> going on, and now it's 20 lines long(mostly puts) and I *still*  
> don't get
> something (Beware - the single most basic code ever follows - it was
> originally much nicer but then I got to trying to debug)
>
> a = Array.new
> a = %w{test test2 test3}
> puts a
> aSize = a.size
> b = Array.new
> b = %w{test3 nil test2 test}
> bSize = b.size
> puts 'size of b:' + bSize.to_s
> puts b
> puts 'size of a:' + aSize.to_s
> if aSize = bSize

In Ruby = is only used for assignment. For testing use ==.

>  aSorted= a.sort!
>  bSorted= b.sort!
>  if aSorted.eql?(bSorted)
>    puts 'ssdd'
>  else
>    puts 'same size, different values'
>  end
> else
>  puts 'not the same size'
> end
>
>> ruby array.rb
> test
> test2
> test3
> size of b:4
> test3
> nil
> test2
> test
> size of a:3
> same size, different values
>
> What's wrong with if aSize = bSize?  That seems the most intuitive  
> way to do
> it to me... I mean, it's an integer... why is it going inside the  
> loop at
> all?

Regards, Morton