h.fulton / att.net writes:
> Greetings, all...

Greetings back :-)

> 
> I spent several hours this week working on a class for
> complex numbers. Although it was fun and it was good
> practice, I eventually discovered that I was reinventing
> the wheel -- that this had already been done, and very
> nicely.

that is the Ruby effect, it seems. Every time I want to code something
of public interest, somebody else has already done it! ;-)

> 
> I am wondering if anyone has an idea for a problem of
> a similar nature that I could work on? By "similar
> nature" I mean relatively self-contained, easily grokked
> in its entirety, but not entirely trivial or useless.

I would have an idea, but I do not know if it is a good one? So please
do not beat me!

What do you think about classes that represent and calculate formulas?
You could build a formula via e.g. parsing a string. Then you could
also offer to calculate that formula with passing arguments to
it. Something like:

   f = Formula.new("sin(a)")
   sa = f.calc("a"=>30)
   s = f.to_s                 # ==> 'sin(a)'
   s = f.to_s("a"=>30)        # ==> 'sin(30)'
   ...

That would not make to much sense, I agree, because Ruby has the eval
mechanism! But ... you could provide some methods, that do
numeric/symbolic integration/differentiation! Such a method could
return a new Formula instance that represents the e.g. integrated
original formula!

I have chosen that idea, because you have mentioned mathematical
problems (complex numbers, matrix). Furthermore I couldn't remember
that anyone has done that already for a interpreted programming
language!

...

> Please make delurking worthwhile for me and give me 
> some suggestions...

Okay, here you are! ;-)

> 
> Thanks,
> Hal Fulton
> hal9000 / hypermetrics.com


You are welcome,
\cle


BTW: Community! We really should discuss again about a list of ideas
accessible on the ruby-lang.org. There we could collect ideas, what
one think could be useful, and other could mark-up as interested in
this topic. That would prevent us from re-inventing the wheel again
and again!

-- 
Clemens Hintze  mailto: c.hintze / gmx.net