On Wed, 2004-08-18 at 15:57, Felix Gallo wrote:
> Dan writes:
> >     sub foo :come_from('+', int, int) {}
> 
> One problem with MMD in general, and return specifically, is
> 'what happens if multiple M match the same D requirements?
> i.e., 

That's a question, not a problem. It's easy to answer questions ;-) I
assume we're talking about first-to-match only, but I haven't looked at
the code. You could always go look at the MMD code in the Parrot
source...

However, I'm not sure what Dan meant there. Perhaps he mis-spoke, or
perhaps I don't understand this at all... that's a calling signature,
not a return signature. I would expect:

        sub foo :come_from('+', int) {...} # Handle integer returns
        sub foo :come_from('+', num) {...} # Handle floating point

That's very different from a come_from that would operate on the calling
signature (which needs return continuations too, but differently).

Or did we just switch to talking about something different while I
wasn't looking?

> If the answer is 'all get executed', this could be useful for
> any languages interested in implementing aspect-oriented programming
> as a first class language feature, e.g.

You can build one from the other trivially, though and that doesn't
affect, in the slightest, how "first class" the feature is in a language
that uses Parrot, only how interchangeable it is between languages.

That, of course, dodges the question of how much aspect oriented
programming is an attempt to being the beauty of Intercal to ugly,
"usable" programming languages....

> sub debug_log :come_from(:benchmark_me) { 
>     my $function_name = shift;
>     print STDERR "debug: $function_name at " . time() . "\n";
> }

Ok, this is starting to look like people speaking seriously about using
Intercal's COME FROM (http://c2.com/cgi/wiki?ComeFrom)... can we just
step back and take a deep breath of AIR please? Seriously, this is
starting to creep me out.

-- 
â 781-324-3772
â [EMAIL PROTECTED]
â http://www.ajs.com/~ajs

Reply via email to