[#389739] Ruby Challenge — teresa nuagen <unguyen90@...>

Here is a ruby challenge for all you computer science lovers out there,

22 messages 2011/11/05
[#389769] Re: Ruby Challenge — "Jonan S." <jonanscheffler@...> 2011/11/05

Totally unrelated to any husker computer science programs right? Like

[#389905] Re: Ruby Challenge — Stephen Ramsay <sramsay.unl@...> 2011/11/09

Jonan S. wrote in post #1030330:

[#389907] Re: Ruby Challenge — aseret nuagen <unguyen90@...> 2011/11/09

> You mean like the professor for the course? Because that would be me .

[#389915] Re: Ruby Challenge — Robert Klemme <shortcutter@...> 2011/11/09

On Wed, Nov 9, 2011 at 4:52 AM, aseret nuagen <unguyen90@aim.com> wrote:

[#389792] Tricky DSL, how to do it? — Intransition <transfire@...>

I'd want to write a DSL such that a surface method_missing catches

18 messages 2011/11/06

[#389858] Compiling Ruby Inline C code - resolving errors — Martin Hansen <mail@...>

I am trying to get this Ruby inline C code http://pastie.org/2825882 to

12 messages 2011/11/08

[#389928] Forming a Ruby meetup group... — "Darryl L. Pierce" <mcpierce@...>

Where I work we have a local Ruby group that used to meet up, until the

12 messages 2011/11/09

[#389950] The faster way to read files — "Noé Alejandro" <casanejo@...>

Does anybody know which is the fastest way to read a file? Lets say

18 messages 2011/11/09

[#390064] referring to version numbers in a gem — Chad Perrin <code@...>

How do I specify and access a gem's version number within the code of the

28 messages 2011/11/11

[#390238] RVM problem, plz help — Misha Ognev <b1368810@...>

Hi, I have this problem:

15 messages 2011/11/16

[#390308] any command line tools for querying yaml files — Rahul Kumar <sentinel1879@...>

(Sorry, this is not exactly a ruby question).

11 messages 2011/11/18

[#390338] Newbie - cmd question — Otto Dydakt <ottodydakt@...>

I've literally JUST downloaded ruby from rubyinstaller.org.

21 messages 2011/11/19
[#390342] Re: Newbie - cmd question — Otto Dydakt <ottodydakt@...> 2011/11/19

OK thank you, I uninstalled & reinstalled, checking the three boxes at

[#390343] Re: Newbie - cmd question — "Ian M. Asaff" <ian.asaff@...> 2011/11/19

did you type "irb" first to bring up the ruby command prompt?

[#391154] Re: Newbie - cmd question — "Hussain A." <hahmad@...> 2011/12/12

Hi all,

[#391165] Re: Newbie - cmd question — Luis Lavena <luislavena@...> 2011/12/12

Hussain A. wrote in post #1036281:

[#390374] Principle of Best Principles — Intransition <transfire@...>

I seem to run into a couple of design issue a lot and I never know what is

16 messages 2011/11/20

[#390396] how to call Function argument into another ruby script. — hari mahesh <harismahesh@...>

Consider I have a ruby file called library.rb.

10 messages 2011/11/21

[#390496] How to make 1.9.2 my default version using RVM — Fily Salas <fs_tigre@...>

Hi,

25 messages 2011/11/24

[#390535] Is high-speed sorting impossible with Ruby? — "Gaurav C." <chande.gaurav@...>

Well, first of all, I'm new to Ruby, and to this forum. So, hello. :)

39 messages 2011/11/25
[#390580] Re: Is high-speed sorting impossible with Ruby? — Joao Pedrosa <joaopedrosa@...> 2011/11/27

Hi,

[#390593] Re: Is high-speed sorting impossible with Ruby? — "Gaurav C." <chande.gaurav@...> 2011/11/27

Joao Pedrosa wrote in post #1033884:

[#390600] Re: Is high-speed sorting impossible with Ruby? — Douglas Seifert <doug@...> 2011/11/27

A big gain can be had by disabling the garbage collector. Here is my best

[#390601] Re: Is high-speed sorting impossible with Ruby? — Douglas Seifert <doug@...> 2011/11/27

I've thrown various solutions up on github here:

[#390650] Loading a faulty ruby file - forcing this — Marc Heiler <shevegen@...>

Hi.

10 messages 2011/11/29

[#390689] Stupid question — James Gallagher <lollyproductions@...>

Hi everyone.

22 messages 2011/11/30

Re: Ruby Challenge

From: Sylvester Keil <sylvester.keil@...>
Date: 2011-11-05 10:40:16 UTC
List: ruby-talk #389748
On Nov 5, 2011, at 5:59 AM, teresa nuagen wrote:

> Thomas Sawyer wrote in post #1030247:
>> Why does this sound like a school assignment?
>>=20
>>    file =3D 'sample.txt'
>>    freq =3D Hash.new{|h,k| h[k] =3D 0}
>>    File.read(file).scan(/\w+/) do |w|
>>      freq[w] +=3D 1
>>    end
>>    freq.each do |w,c|
>>      puts "#{c} #{w}"
>>    end
>>=20
>> Untested.
>=20
>=20
> There should be an "if" / "else" statement in a looping method, to add=20=

> the word in list or word count.

Careful, you don't want to annoy the people who help you. The code =
solves your problem admirably: paste this (don't copy the ### marks) =
into a file and run it, and you will get exactly the output you wanted:

###

freq =3D Hash.new{|h,k| h[k] =3D 0}
DATA.read.scan(/\w+/) do |w|
	freq[w.downcase] +=3D 1
end
freq.each.sort_by {|w,c| [c,w] }.each do |w,c|
	puts "#{c} #{w}"
end

__END__

If the text file contained this sentence, the output of your program
would look something like this

###

Before claiming a proposed solution to a 'challenge' you posted is =
missing something, have the decency at least to run it to see if it =
works. In this case, Intransition's solution sets the counter for each =
word to zero (this is what the first line does: if you add a word to the =
freq hash for the first time the counter is set to zero). The scan =
method is your 'looping method' and executes the block at each =
iteration. Finally, `freq[w.downase] +=3D 1` increases the counter for =
each word. By defining, the zero default, Intransition's solution =
doesn't require your if/else statement. So, please, next time, instead =
of simply stating 'there should be an if/else statement there', how =
about 'cool solution! Can you explain to me why this works without an =
explicit if/else statement?'.



In This Thread