[#5218] Ruby Book Eng tl, ch1 question — Jon Babcock <jon@...>

13 messages 2000/10/02

[#5404] Object.foo, setters and so on — "Hal E. Fulton" <hal9000@...>

OK, here is what I think I know.

14 messages 2000/10/11

[#5425] Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...>

18 messages 2000/10/11
[#5427] RE: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — OZAWA -Crouton- Sakuro <crouton@...> 2000/10/11

At Thu, 12 Oct 2000 03:49:46 +0900,

[#5429] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...> 2000/10/11

Thanks for the input.

[#5432] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Yasushi Shoji <yashi@...> 2000/10/11

At Thu, 12 Oct 2000 04:53:41 +0900,

[#5516] Re: Some newbye question — ts <decoux@...>

>>>>> "D" == Davide Marchignoli <marchign@di.unipi.it> writes:

80 messages 2000/10/13
[#5531] Re: Some newbye question — matz@... (Yukihiro Matsumoto) 2000/10/14

Hi,

[#5544] Re: Some newbye question — Davide Marchignoli <marchign@...> 2000/10/15

On Sat, 14 Oct 2000, Yukihiro Matsumoto wrote:

[#5576] Re: local variables (nested, in-block, parameters, etc.) — Dave Thomas <Dave@...> 2000/10/16

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#5617] Re: local variables (nested, in-block, parameters, etc.) — "Brian F. Feldman" <green@...> 2000/10/16

Dave Thomas <Dave@thomases.com> wrote:

[#5705] Dynamic languages, SWOT ? — Hugh Sasse Staff Elec Eng <hgs@...>

There has been discussion on this list/group from time to time about

16 messages 2000/10/20
[#5712] Re: Dynamic languages, SWOT ? — Charles Hixson <charleshixsn@...> 2000/10/20

Hugh Sasse Staff Elec Eng wrote:

[#5882] [RFC] Towards a new synchronisation primitive — hipster <hipster@...4all.nl>

Hello fellow rubyists,

21 messages 2000/10/26

[ruby-talk:5862] succ but no pred? (& the MURKY award)

From: "Hal E. Fulton" <hal9000@...>
Date: 2000-10-26 05:04:36 UTC
List: ruby-talk #5862
First of all, a serious question:

Is there some special reason that Ruby has (here and there)
a successor function (succ) but never a predecessor function
(pred)?



======= WARNING: A feeble attempt at humor follows =========

And now, a complete waste of your time:

I hereby invent the MURKY award (Most Useless Ruby Kode Yet)
and bestow the first one on myself.

The following method "pred" will find the predecessor of a
string.

It works by generating every string possible and then checking
each one to see if the successor is the correct one.

I restrict the characters to ASCII 32..126; this is done (ha!)
for efficiency; in other words, so that a four-letter string
can be processed before my lunch hour is over.

On the average, the number of iterations is 0.5 * 95**N where
N is the length of the string.

    
    def pred str
      nest = "def genstr()\n"
      keeping = ""
      ends = ""
      for i in 0..str.length-1 do
        nest += "#{' '*i}  for index#{i} in 32..126 do\n"
        keeping += "#{' '*str.length}  temp << index#{i}\n"
        ends += "#{' '*(str.length-i-1)}  end\n"
      end
      keeping += "#{' '*str.length}  yield temp"
      keeping += "#{' '*(str.length-1)}\n"
    
      expr = nest + "#{' '*str.length}  temp=''\n" + 
             keeping + ends + "end\n\n"
      # print expr
      eval(expr)
      x = nil
      genstr {|x| break if x.succ == str}
      x
    end
    
    print pred "Ham"   # Prints "Hal"
    print "\n"
    
This is certainly in a category with the infamous Bumblesort sorting
algorithm, which picks two elements at random and exchanges them, then
checks to see if the list is sorted yet.

So the next time you write a piece of code that is bloated, sluggish, 
or simply in poor taste, don't throw it away! 

Just ask yourself: "Could this turkey earn a MURKY?"


Have a nice day,
Hal




In This Thread

Prev Next