[#3741] Re: Why it's quiet -- standard distribution issues — Aleksi Niemel<aleksi.niemela@...>
I think it's the feature of the mailing list archive to create a threads of
[#3756] RE: XMP on comments — Aleksi Niemel<aleksi.niemela@...>
> require "xmp"
[#3766] modulo and remainder — Dave Thomas <Dave@...>
[#3776] Kernel.rand — Aleksi Niemel<aleksi.niemela@...>
How about defining:
[#3781] Widening out discussions — Dave Thomas <Dave@...>
[#3795] Re: Array.uniq! returning nil — Aleksi Niemel<aleksi.niemela@...>
> As matz said in [ruby-talk:3785] and Dave said in [ruby-talk:1229],
Hi, Aleksi,
[#3823] Re: Array.pick — Aleksi Niemel<aleksi.niemela@...>
> > Just a general comment--a brief statement of purpose and using
[#3827] JRuby? — Aleksi Niemel<aleksi.niemela@...>
Is there or will there be Ruby equivalent of JPython?
[#3882] Re: Array.uniq! returning nil — Aleksi Niemel<aleksi.niemela@...>
> |look too strange, confusing, or cryptic. Maybe just @, $, %, &.
Hi,
[#3918] A question about variable names... — Dave Thomas <Dave@...>
[#3935] If your company uses Pallets, Skids, Boxes, Lumber, etc. — pallets2@...
[#3956] Tk PhotoImage options — andy@... (Andrew Hunt)
Hi all,
[#3971] Thread and File do not work together — "Michael Neumann" <neumann@...>
following example do not work correctly with my ruby
[#3986] Re: Principle of least effort -- another Ruby virtue. — Andrew Hunt <andy@...>
> Principle of Least Effort.
Hi,
[#4005] Re: Pluggable functions and blocks — Aleksi Niemel<aleksi.niemela@...>
Aleksi makes a question:
[#4008] Ruby installation instructions for Windows — Aleksi Niemel<aleksi.niemela@...>
I had to write these instructions for my friends. I thought it might be nice
[#4043] What are you using Ruby for? — Dave Thomas <Dave@...>
On 15 Jul 2000 22:08:50 -0500,
Hi,
[#4057] Re: What are you using Ruby for? — Aleksi Niemel<aleksi.niemela@...>
Johann:
[#4082] Re: What are you using Ruby for? — Aleksi Niemel<aleksi.niemela@...>
[#4091] 'each' and 'in' — hal9000@...
I just recently realized why the default
[#4107] Re: 'each' and 'in' -- special char problem? — schneik@...
[#4114] Method signature - a question for the group — Dave Thomas <Dave@...>
[#4139] Facilitating Ruby self-propagation with the rig-it autopolymorph application. — Conrad Schneiker <schneik@...>
Hi,
[#4158] Getting Tk to work on Windows — "Michael Neumann" <neumann@...>
Hi....
[#4178] Partly converted English Ruby/Tk widget demo working. — Conrad Schneiker <schneik@...>
Hi,
[#4234] @ variables not updated within method? — Hugh Sasse Staff Elec Eng <hgs@...>
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
On 27 Jul 2000, Dave Thomas wrote:
[#4267] Ruby.next, Perl6, Python 3000, Tcl++, etc. -- Any opportunities for common implementation code? — "Conrad Schneiker" <schneiker@...>
Hi,
"Conrad Schneiker" wrote:
[ruby-talk:04120] Re: Function objects. was: What are you using Ruby for?
It looks like my previous reply to this may have been lost, so I'm
re-posting it.
Regards
Dave
Johann Hibschman <johann@physics.berkeley.edu> writes:
> As an example of what I do in python, I have a program which
> implements several functions over a dataset, then lets the user pick
> which functions to plot from the command line. There are also
> multiple forms of each function, which are (in general) variable
> transformations.
>...
> As I understand Ruby, I would have to make all of these functions into
> global Proc objects and use $-names to reference them, if I want f1
> and g1 to be callable using the same conventions. That seems like it
> would get very ugly very fast.
>
> Is this a correct impression?
Yes and no ;-)
For your particular problem, you have a couple of solutions. Firstly,
there's no need for a global to reference the proc. You could just
write
register_function("g1", proc {|x,y| f1(x,y)}, "compute something")
You _could_ do it that way, but...
One of the things about functions is that referencing one in a pure OO
language requires that you at some point bind it to an object. A
function on its own means nothing. Take the humble '+' operator, for
instance. Send it to a number, and you get addition; send it to a
string, concatenation.
So, lets create a calculation class to hold all our functions:
class Calculator
def f1(x, y)
#...
end
def g1(x, y)
#...
end
end
Then the code might look something like:
calc = Calculator.new
register_function("f1", calc.method(:f1), "computer it")
register_function("g1", calc.method(:g1), "computer other")
There are definite benefits here. Say your calculations had related
information they shared (methods, constants and the like). These are
now all neatly encapsulated within class Calculator. Then say you
wanted to have sets of related functions with different versions of
these constants.
calc1 = Calculator.new(1.2)
register_function("f1", calc.method(:f1), "computer it")
register_function("g1", calc.method(:g1), "computer other")
calc2 = Calculator.new(1.4)
register_function("f2", calc2.method(:f2), "computer it")
register_function("g2", calc2.method(:g2), "computer other")
So I'd say what you might initially perceive to be a disadvantage
actually is a strength!
Regards
Dave