[#13775] Problems with racc rule definitions — Michael Neumann <neumann@...>

15 messages 2001/04/17
[#13795] Re: Problems with racc rule definitions — Minero Aoki <aamine@...> 2001/04/18

Hi,

[#13940] From Guido, with love... — Dave Thomas <Dave@...>

52 messages 2001/04/20

[#13953] regexp — James Ponder <james@...>

Hi, I'm new to ruby and am coming from a perl background - therefore I

19 messages 2001/04/21

[#14033] Distributed Ruby and heterogeneous networks — harryo@... (Harry Ohlsen)

I wrote my first small distributed application yesterday and it worked

15 messages 2001/04/22

[#14040] RCR: getClassFromString method — ptkwt@...1.aracnet.com (Phil Tomson)

It would be nice to have a function that returns a class type given a

20 messages 2001/04/22

[#14130] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Guy N. Hurst wrote:

21 messages 2001/04/24
[#14148] Re: Ruby mascot proposal — Stephen White <spwhite@...> 2001/04/24

On Tue, 24 Apr 2001, Conrad Schneiker wrote:

[#14188] Re: Ruby mascot proposal — matz@... (Yukihiro Matsumoto) 2001/04/25

Hi,

[#14193] Re: Ruby mascot proposal — "W. Kent Starr" <elderburn@...> 2001/04/25

On Tuesday 24 April 2001 23:02, Yukihiro Matsumoto wrote:

[#14138] Re: python on the smalltalk VM — Conrad Schneiker <schneik@...>

FYI: Thought this might be of interest to the JRuby and Ruby/GUI folks.

27 messages 2001/04/24
[#14153] Re: python on the smalltalk VM — Andrew Kuchling <akuchlin@...> 2001/04/24

Conrad Schneiker <schneik@austin.ibm.com> writes:

[#14154] array#flatten! question — Jim Freeze <jim@...> 2001/04/24

Hello.

[#14159] Can I insert into an array — Jim Freeze <jim@...> 2001/04/24

Ok, this may be a dumb question, but, is it possible to insert into an

[#14162] Re: Can I insert into an array — Dave Thomas <Dave@...> 2001/04/24

Jim Freeze <jim@freeze.org> writes:

[#14289] RCR: Array#insert — Shugo Maeda <shugo@...> 2001/04/27

At Wed, 25 Apr 2001 01:28:36 +0900,

[#14221] An or in an if. — Tim Pettman <tjp@...>

Hi there,

18 messages 2001/04/25

[#14267] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Danny van Bruggen,

16 messages 2001/04/26

[#14452] How to do it the Ruby-way 3 — Stefan Matthias Aust <sma@3plus4.de>

First a question: Why is

21 messages 2001/04/30

[ruby-talk:13713] Re: operator +

From: Johann Hibschman <johann@...>
Date: 2001-04-16 19:40:08 UTC
List: ruby-talk #13713
Luigi Ballabio writes:

> Hmm. Looks like I kept my example too simple.
> The real picture is, I have a TridiagonalOperator class written in C++ and 
> exported to Ruby through SWIG. Not easy to coerce to a Float :) I export 
> the operator * (a matrix times a scalar) and I hoped I could get 
> scalar*matrix for free. Oh well...

This is exactly the sort of thing that multimethods solve well.  Is
there any chance that Ruby could grow something like that, or is it
just too different?

Hm.  Actually, with a bit more thought I could probably write a multi-
method object in Ruby, but it would take a bit of effort.

The only concrete example I can think of is from Common Lisp.  There,
you can define

(defun add ((s number) (op TridiagonalOperator))
  ..)
(defun add ((op TridiagonalOperator) (s number))
 ..)
(defun add ((op TridiagonalOperator) (v Vector))
 ..)
(defun add ((v Vector) (op TridiagonalOperator))
 ..)

etc., and the compiler will automatically dispatch to the right
method.  Since methods here aren't part of a class, they can dispatch
equally well on either operator, which is very useful for matrix math,
since matrices are noncommutative.

Ideally, you could do something like

<pseudo-code>
class TridiagonalOperator < MultiMethods
  multi_def + (x : TridiagonalOperator, y : Scalar)
    ..something..
  end
end
</psuedo-code>

But I think that's a bit much for Ruby to handle.  It's in the really
ugly things like this that the Lisp-variants really shine.  I could do
it with Lisp macros.  :-)

Ruby wizards, is there any way to do this automatically?

--J

-- 
Johann Hibschman                           johann@physics.berkeley.edu

In This Thread