in reply to oldschool math

Here is my try. It adds numbers, but is not limited to two arguments. It's recursive and probably not very efficient. (Anyone want to benchmark the two solutions?)

sub add { my $current = 0; return '' unless @_ = grep length, @_; $current += substr $_, -1, 1, '' for @_; push @_, substr $current, 0, -1, '' if length $current > 1; return &add . $current; }
Proof that it works:
$\ = "\n"; print add( '999999999999999999999997', '1', '2' ); print add( '9999999999', '9999999999', '999999999', '999', '9' ); # Next line is not -w safe: "Deep recursion"... grin. print add('9' x 5000, 1) eq '1' . ('0' x 5000) ? "Works" : "Doesn't wo +rk";

- Yes, I reinvent wheels.
- Spam: Visit eurotraQ.

Replies are listed 'Best First'.
Re: Re: oldschool math
by PerpLexicon (Novice) on Jul 02, 2002 at 20:34 UTC
    Now, our big mission in life must be to construct a similar function, that does not add, but substracts...*LOL*


    #!s #!s, oh baby when she moves, she moves...