[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Extreme dynamism examples for showing off Ruby power

dsymonds

1/5/2006 2:59:00 AM

Hi All,

I'm giving a presentation to my research group next month about Ruby
(mainly an intro), but seeing as though it's in a Computer Science
department, with plenty of people who have several decades of
programming experience in many different languages, I'm trying to come
up with some examples of (among other things) how Ruby's dynamism can
be taken to extremes. My first thought was satisfying Orwell's famous
"Nineteen Eighty Four" proposition about mathematical adherence to Big
Brother:

class Fixnum
alias old_plus +

def +(arg)
if self == 2 and arg == 2
5 # INGSOC compliance
else
old_plus(arg)
end
end
end


Any improvements, or other neat little examples I can use? I've also
adapted the VCR-proxy example (pimple-class using method_missing to
catch, record and pass on method calls).



Cheers,

Dave.

3 Answers

J. Ryan Sobol

1/5/2006 4:06:00 AM

0

Many solutions to the latest ruby quiz used breadth-first search, a
classic computer science algorithm. There were a wide variety of
solutions, filled with neat examples of ruby-isms. I'm sure you can
find some gems for your presentation by looking here:

http://www.rubyquiz.com/q...

BTW - Here was my solution, which turned instances of Integers into
an ad-hoc nodes.

http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-t...

~ ryan ~


On Jan 4, 2006, at 10:03 PM, Dave Symonds wrote:

> Hi All,
>
> I'm giving a presentation to my research group next month about Ruby
> (mainly an intro), but seeing as though it's in a Computer Science
> department, with plenty of people who have several decades of
> programming experience in many different languages, I'm trying to come
> up with some examples of (among other things) how Ruby's dynamism can
> be taken to extremes. My first thought was satisfying Orwell's famous
> "Nineteen Eighty Four" proposition about mathematical adherence to Big
> Brother:
>
> class Fixnum
> alias old_plus +
>
> def +(arg)
> if self == 2 and arg == 2
> 5 # INGSOC compliance
> else
> old_plus(arg)
> end
> end
> end
>
>
> Any improvements, or other neat little examples I can use? I've also
> adapted the VCR-proxy example (pimple-class using method_missing to
> catch, record and pass on method calls).
>
>
>
> Cheers,
>
> Dave.
>
>



Robert Klemme

1/5/2006 8:26:00 AM

0

Dave Symonds wrote:
> Hi All,
>
> I'm giving a presentation to my research group next month about Ruby
> (mainly an intro), but seeing as though it's in a Computer Science
> department, with plenty of people who have several decades of
> programming experience in many different languages, I'm trying to come
> up with some examples of (among other things) how Ruby's dynamism can
> be taken to extremes. My first thought was satisfying Orwell's famous
> "Nineteen Eighty Four" proposition about mathematical adherence to Big
> Brother:
>
> class Fixnum
> alias old_plus +
>
> def +(arg)
> if self == 2 and arg == 2
> 5 # INGSOC compliance
> else
> old_plus(arg)
> end
> end
> end
>
>
> Any improvements, or other neat little examples I can use? I've also
> adapted the VCR-proxy example (pimple-class using method_missing to
> catch, record and pass on method calls).

I always like the interchangeability of lambda#[] and Hash#[] which allows
for poor man's memoize:

fun = lambda {|x| x + 10 - 2}
code = optimize ? Hash.new {|h,k| h[k] = fun[k]} : fun
1000.times { code[100] }

Admittedly a silly example... :-)

robert

Ross Bamford

1/5/2006 8:44:00 AM

0

On Thu, 05 Jan 2006 02:59:21 -0000, Dave Symonds <dsymonds@gmail.com>
wrote:

> Hi All,
>
> I'm giving a presentation to my research group next month about Ruby
> (mainly an intro), but seeing as though it's in a Computer Science
> department, with plenty of people who have several decades of
> programming experience in many different languages, I'm trying to come
> up with some examples of (among other things) how Ruby's dynamism can
> be taken to extremes. My first thought was satisfying Orwell's famous
> "Nineteen Eighty Four" proposition about mathematical adherence to Big
> Brother:
>
> class Fixnum
> alias old_plus +
>
> def +(arg)
> if self == 2 and arg == 2
> 5 # INGSOC compliance
> else
> old_plus(arg)
> end
> end
> end
>

:D Like it.

>
> Any improvements, or other neat little examples I can use? I've also
> adapted the VCR-proxy example (pimple-class using method_missing to
> catch, record and pass on method calls).
>

Well, I don't know how much they'll impress such old salts, but you can
find examples of my wide-eyed wonderment in my Nuby files:

http://roscopeco.co.uk/...

Maybe it can provide a few ideas for things to look at.

--
Ross Bamford - rosco@roscopeco.remove.co.uk