--
lternative 0072BA1F882570D2_Content-Type: text/plain; charset="US-ASCII"

Thank you all.  I learned a little bit more ruby.  And yes, I want to do 
things the Ruby way, but I just can't help to think perl still and then 
translate to ruby.  This is very similar to when I came to the U.S.  and 
all of a sudden I have to talk in English, I still think in my original 
language(Tagalog) and then translate it in English and it doesn't always 
come up the way English speakers would say it.  But I get the point 
accross.  But yes, going back to Ruby, I'd like to learn things the Ruby 
way and so far I have good things to say about Ruby.  One, it being so 
readable, and second I think it is easier to learn especially the OOP part 
of it.  In perl OOP is a big hurdle.

Here's what I decided on using (looks more like what I originally posted 
in perl):

hash  ash.new(0)
File.open(ARGV[0],"r").each do |line|
    hash[line.chomp] + 
end

hash.keys.sort.each do |key|
    puts "#{key}: #{hash[key]}" if hash[key] > 1
end

Regards,
Sam Dela Cruz









Eric Hodel <drbrain / segment7.net> 
12/09/2005 11:39 AM
Please respond to
ruby-talk / ruby-lang.org


To
ruby-talk / ruby-lang.org (ruby-talk ML)
cc

Subject
Re: new to Ruby - pls help in translating this
Classification







On Dec 9, 2005, at 11:23 AM, pat eyler wrote:

> On 12/9/05, Sam Dela Cruz <sam.dela.cruz / philips.com> wrote:
>> Hi,
>>
>> I'm starting to use Ruby in one of my projects at work.  I'm 
>> coming from a
>> Perl background.
>> In my project I would need to parse a list of numbers (thousands 
>> of them)
>> and then return the duplicates.  In perl, I can do this:
>>
> [elided perl goo]
>>
>> I tried to translate this in Ruby, but could not find en 
>> equivalent of
>> $hash{$_}++, this is auto increment.
>> Can somebody tell me how this is to be done in Ruby?
>
> translating from Perl to Ruby seems often to be a bad idea ... a
> common idea, but not necessarily a good one.   I'd rather work
> with a Ruby solution to a problem than a Rubification of a Perl
> solution to a problem.

Ditto.  I often find that I can make my code close to readable 
English and find that a very good thing.

>> Or maybe the Ruby way on how to attack this whole thing.  Thanks.
>
> I'm assuming that your list comes from a file (but you can change that
> pretty easily in the code below), given that, how about something 
> like:
>
> seen_ary  rray.new
>
> File.open("nums","r").each do |elem|
>   print elem if seen_ary.include?(elem)
>   seen_ary.push(elem)
> end
>
> (there are probably still better ways of doing this though)

I'll go with:

seen  }

ARGF.each do |elem|
   print elem if seen.include? elem
   seen[elem]  rue
end

-- 
Eric Hodel - drbrain / segment7.net - http://segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com





--
lternative 0072BA1F882570D2_