"Chris Yocum" <cyocum@gmail.com> writes:
Hi All,
At the risk of sounding a bit thick, I have a couple of questions
about Perl6's multi keyword and mutilmethod in general. This seems
like overloaded functions from C++ so why do we need a key word to
declare them rather than using something like C++'s name mangling? Is
there something that I am just missing here?
Because of your question I had a look at Synopsis 6
(http://dev.perl.org/perl6/doc/design/syn/S06.html). I should do this
more often. Maybe you should also have a look. It's always refreshing.

At least the many keywords seem to be necessary to map the complexity
of different paradigms possible in Perl6. Multimethods are not just
overloading as in C++. Second, the different keywords declare
different behaviour you can choose. Just read S06, it's explained
quite understandable.

can we now write generic/overloaded functions in Perl6 without OO or
have I conflated OO with overloading incorrectly?
However it's currently called, with multimethods you can elegantly
"divide and conquer" your code into different subs instead of ugly
"parameter checking if-cascades".

multi sub talk () { say 'Loose Talk Is Noose Talk.'; }
multi sub talk (String $msg) { say $msg; }
multi sub talk (String $msg, Int $times) { say $msg x $times; }

talk("Hi", 10);

Steffen Schwigon <schwigon@webit.de>
Dresden Perl Mongers <http://dresden-pm.org/>

Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 2 of 14 | next ›
Discussion Overview
groupperl6-users @
postedJun 21, '06 at 2:41p
activeJun 28, '06 at 2:20a



site design / logo © 2021 Grokbase