[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11689] Re: Putting methods in arrays

From: zawrotny@... (Michael Zawrotny)
Date: 2001-02-27 14:40:03 UTC
List: ruby-talk #11689
Dave Thomas <Dave@PragmaticProgrammer.com> writes:

>Alex McHale <lists@theorigin.org> writes:

>>   I'm looking to put a method in an array, to be called at a later time.  
>> In C, this is possible using pointers (through some rigamarole and 
>> typedefs, it would  look like { funct }).  Is there any way this can 
>> similarly be acheived in Ruby?
>>   What the end goal is to be able to call the method using 'arr[index] 
>> args'.  The purpose of this is that I'm working on a server that might 
>> receive one of hundreds of commands from the client side, and this:

>...

>>   Is this possible?  Is there a better solution for command recognition 
>> without endless if/elsif/..?

[snip Dave's 4 ideas]

I was looking for something similar last week.  What I came up with
was:

5.  Convert the function to a Proc object and invoke it with the []
    method.

On my toy factorial problem (shown below), I only saw a difference
of less than 2 percent between the running times for the direct and
indirect calls.  This may also be considered a candidate for the
"Useless and Misleading Benchmark of the Week" award.  

What I was testing for was whether or not calling a simple function many
times via a Proc object would be noticeably slower than the direct call.
This was in the context of wanting to specialize a function at runtime 
based on information not available when the function was written.  More
specifically, I was looking to do something along the lines of partial
function application in SML or a similar effect in e.g. lisp with "let"
and "lambda".

def fac(n)
    acc = 1
    i = 1
    while i < n
        i += 1
        acc *= i
    end
    acc
end

ntimes = 5000
targ = 100

fac2 = Proc.new {|n| fac(n)}

start = Time.now

ntimes.times { fac targ }

direct = Time.now

ntimes.times { fac2[targ] }

indirect = Time.now

print "#{ntimes} direct calls took #{direct - start} seconds.\n"
print "#{ntimes} indirect calls took #{indirect - direct} seconds.\n"


Mike
-- 
Michael Zawrotny
411 Molecular Biophysics Building
Florida State University		| email:  zawrotny@sb.fsu.edu
Tallahassee, FL 32306-4380		| phone:  (850) 644-0069

In This Thread

Prev Next