From: Clemens Hintze Date: 2000-02-23T09:22:53+01:00 Subject: [ruby-talk:01545] Complex numbers, etc. 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