Important Algorithm Finally Ported.

Discussion in 'Ruby' started by Hampton, Jan 12, 2006.

  1. Hampton

    Hampton Guest

    After months of work, gruelling hours, and a nice cup of coffee, the
    world's most famous (and infamous) algorithm has been ported to the
    ruby language!

    {applause}

    Thank you, thank you.

    The Slim Shady algorithm is a deceptively simple algorithm which finds
    use in many many aerospace and bio-informatics systems. Therefore, Ruby
    may now stand proud as.... a..... ummm.... language to do those things.

    Here is the algorithm...

    def slim_shady_finder homies
    homies.each do |some_guy|
    return some_guy if (some_guy.name.eql? "Slim Shady")
    end
    return nil
    end

    Thank you, I know you all can tell how many hours of work have gone
    into this conversion. For more information on the SSA and to see where
    our implementation has been added... go to the Uncyclopedia.

    http://uncyclopedia.org/wiki/Slim_Shady_Algorithm#The_Actual_Algorithm.27s_implementations
    Hampton, Jan 12, 2006
    #1
    1. Advertising

  2. Hampton

    Guest

    Hi --

    On Fri, 13 Jan 2006, Hampton wrote:

    > After months of work, gruelling hours, and a nice cup of coffee, the
    > world's most famous (and infamous) algorithm has been ported to the
    > ruby language!
    >
    > {applause}
    >
    > Thank you, thank you.
    >
    > The Slim Shady algorithm is a deceptively simple algorithm which finds
    > use in many many aerospace and bio-informatics systems. Therefore, Ruby
    > may now stand proud as.... a..... ummm.... language to do those things.
    >
    > Here is the algorithm...
    >
    > def slim_shady_finder homies
    > homies.each do |some_guy|
    > return some_guy if (some_guy.name.eql? "Slim Shady")
    > end
    > return nil
    > end


    I have no idea what you're talking about, but you've triggered my
    code-massaging compulsion :)

    def slim_shady_finder(homies)
    homies.find {|h| h.name.eql?("Slim Shady") }
    end


    David

    --
    David A. Black


    "Ruby for Rails", from Manning Publications, coming April 2006!
    http://www.manning.com/books/black
    , Jan 12, 2006
    #2
    1. Advertising

  3. Hampton

    Chad Perrin Guest

    On Fri, Jan 13, 2006 at 02:08:07AM +0900, Hampton wrote:
    > After months of work, gruelling hours, and a nice cup of coffee, the
    > world's most famous (and infamous) algorithm has been ported to the
    > ruby language!
    >
    > {applause}
    >
    > Thank you, thank you.
    >
    > The Slim Shady algorithm is a deceptively simple algorithm which finds
    > use in many many aerospace and bio-informatics systems. Therefore, Ruby
    > may now stand proud as.... a..... ummm.... language to do those things.
    >
    > Here is the algorithm...
    >
    > def slim_shady_finder homies
    > homies.each do |some_guy|
    > return some_guy if (some_guy.name.eql? "Slim Shady")
    > end
    > return nil
    > end
    >
    > Thank you, I know you all can tell how many hours of work have gone
    > into this conversion. For more information on the SSA and to see where
    > our implementation has been added... go to the Uncyclopedia.


    Oh, thank goodness. I can finally write that plzstandup.rb program.

    --
    Chad Perrin [ CCD CopyWrite | http://ccd.apotheon.org ]

    unix virus: If you're using a unixlike OS, please forward
    this to 20 others and erase your system partition.
    Chad Perrin, Jan 12, 2006
    #3
  4. Hampton

    Hampton Guest

    David, I'm sorry to say that there is no way to ever improve upon the
    code I write.

    For, you see, I am the Savior of Ruby. Actually, I'm just kidding. I'm
    really the King of Ruby.

    Well, I was trying to use the do and no () to make it as ruby-esque as
    possible. But, I do like your use of find... so feel free to change it
    on that wiki.
    Hampton, Jan 12, 2006
    #4
  5. Hampton

    Guest

    Hi --

    On Fri, 13 Jan 2006, Hampton wrote:

    > David, I'm sorry to say that there is no way to ever improve upon the
    > code I write.
    >
    > For, you see, I am the Savior of Ruby. Actually, I'm just kidding. I'm
    > really the King of Ruby.
    >
    > Well, I was trying to use the do and no () to make it as ruby-esque as
    > possible. But, I do like your use of find... so feel free to change it
    > on that wiki.


    There's nothing Ruby-esque about leaving off the parens, except when
    they're empty, at which point there is :) Nor is do/end more
    Ruby-esque than {}.

    I specialize in nice-looking, short-but-readable code that runs really
    slowly :) (I didn't benchmark the two versions but if mine's slower,
    it wouldn't be the first time.)


    David

    --
    David A. Black


    "Ruby for Rails", from Manning Publications, coming April 2006!
    http://www.manning.com/books/black
    , Jan 12, 2006
    #5
  6. Hampton

    Phrogz Guest

    I think you missed a bit:

    def slim_shady_finder( homies )
    homies.find{ |some_guy| some_guy.name.eql?( "Slim Shady" ) and not
    some_guy.imitating? }
    end
    Phrogz, Jan 12, 2006
    #6
  7. Hampton

    Ross Bamford Guest

    On Thu, 12 Jan 2006 19:26:40 -0000, Phrogz <> wrote:

    > I think you missed a bit:
    >
    > def slim_shady_finder( homies )
    > homies.find{ |some_guy| some_guy.name.eql?( "Slim Shady" ) and not
    > some_guy.imitating? }
    > end
    >


    This is so important, I think we should do it *really* slowly and
    carefully.

    def find_slim(homies)
    if (real_slim = homies.select do |guy|
    guy.name.eql?('Slim Shady')
    end.reject do |guy|
    guy.respond_to?:)imitate_shady)
    end.each do |guy|
    guy.send:)please_stand_up, Time.now)
    end).length == 1
    real_slim.first
    else
    homies.shady_missing:)real_slim)
    end
    end

    --
    Ross Bamford -
    Ross Bamford, Jan 12, 2006
    #7
  8. Hampton

    Sam Gentle Guest

    On 1/13/06, Phrogz <> wrote:
    > I think you missed a bit:
    >
    > def slim_shady_finder( homies )
    > homies.find{ |some_guy| some_guy.name.eql?( "Slim Shady" ) and not
    > some_guy.imitating? }
    > end


    But surely you can't just know if a slim shady is just imitating
    without first asking them to stand up.

    Perhaps:

    slim_shadies.find { |slim_shady| slim_shady.stand_up_unless {
    slim_shady.imitating? } }

    Of course, that has problems - for one, it messes up the shadies'
    persistent 'standing' state. This could cause serious problems with
    false negatives if they were asked to "please stand up" twice in a
    row. It might be possible to subsequently make them sit again, but the
    whole thing loses thread safety easily (what if two programs
    simultaneously need to find the real slim shady?).

    To top it all off, there are potential accessibility issues for
    disabled slim shadies who are unable to stand. I consider this
    particularly likely to become a problem if every person is a slim
    shady lurking. I think the only real solution here is to accept that
    there is a slim shady in all of us and make slim_shady_finder simply
    return nil.

    Sam
    Sam Gentle, Jan 12, 2006
    #8
  9. Hampton

    Hampton Guest

    And this is why its such an important algorithm for so many sciences.
    Hampton, Jan 13, 2006
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. ron proveniers

    anybody ported Jrunner to NIOS

    ron proveniers, Aug 18, 2004, in forum: VHDL
    Replies:
    0
    Views:
    669
    ron proveniers
    Aug 18, 2004
  2. Replies:
    1
    Views:
    424
    Ron Natalie
    Mar 13, 2005
  3. Lucas Raab
    Replies:
    20
    Views:
    670
    Bengt Richter
    Jan 18, 2005
  4. -geek.com
    Replies:
    9
    Views:
    891
    Andy Peters
    Mar 19, 2007
  5. David Lozzi

    Try...Catch...Finally not firing finally?

    David Lozzi, Apr 23, 2007, in forum: ASP .Net
    Replies:
    12
    Views:
    783
    Alvin Bruney [MVP]
    May 11, 2007
Loading...

Share This Page