On Tue, 2004-08-17 at 16:22, Felix Gallo wrote:
> On Tue, Aug 17, 2004 at 04:08:34PM -0400, Dan Sugalski wrote:
> > 1) We're going to have MMD for functions soon
> > 2) Function invocation and return continuation invocation's 
> > essentially identical
> > 3) Therefore returning from a sub/method can do MMD return based on 
> > the return values

> $x -----\
>          \
> @mylist -+--- $obj.mymmdsub;
>          /  
> %hash --/   

How very fungible of you ;-)

Still, I think that's a nice APPLICATION, but the concept is more
flexible, if I understand it correctly. It would be something that would
look more like a cross between exception handling and a switch
statement.

I would think it would look more like (again, Perlish example):

        $sock.peername()
                does returntype(
                        Net::Address::IP -> $ip {
                                die "Remote host unresolvable: '$ip'";
                        }, Net::Address -> $addr {
                                die "Non IP unresolvable address: '$addr'";
                        }, Str -> $_ {
                                print "Seemingly valid hostname: '$_'\n";
                        });

Of course, that's just Perl. Perhaps Python would add something that
would look like:

        returnswitch: sock.peername()
        returncase os.net.addr.ip:
                lambda ip: raise OSError, "Unresolvable %s" % str(ip)
        returncase os.net.addr:
                lambda addr: raise OSError, "Unresolvable non-IP %s" % str(ip)
        returncase str:
                lambda name: print "Seemingly valid hostname: '%s'" % name

My python skills are still developing, so pardon me if I've gotten it
wrong, and I'm just inventing os.net.addr.ip for purposes of
pseudo-code....

Is that the kind of thing you had in mind, Dan, or am I misunderstanding
how return continuations work?

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

Reply via email to