ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> perl6-language
perl6-language
Re: When can I take given as read?
by Damian Conway other posts by this author
Jun 17 2005 3:13PM messages near this date
Re: When can I take given as read? | Re: When can I take given as read?
Larry wrote:

>  : Can I write that as:
>  : 
>  :   sub factorial (Int $n:) {
>  :     return 1 when 0;
>  :     return $n * factorial $n;
>  :   }
>  
>  As it stands right now, no.  Ordinary subs do not allow invocants.
>  Arguably, it'd be more consistent if ordinary subs always topicalized
>  their first argument.  (But blocks have to be handled differently
>  since they expect to see the outer binding of $_ unless the block itself
>  rebinds $_.)  On the other hand, it'd probably work if you threw a
>  "multi" in front of the "sub".
>  
>  Can anyone think of a good reason not to topicalize the first arg
>  of ordinary subs these days?

Only that methods no longer topicalize their invocant...they now invocantize it.

Also it's not a good general solution. I can easily imagine situations where 
you want the second argument, or the last arg, to be the topic.

I still think it would be better to allow people to explicitly say what they mean:

     sub factorial (Int $n is topic) {
         return 1 when 0;
         return $n * factorial $n;
     }

Damian
Thread:
Piers Cawley
Larry Wall
Damian Conway
Carl Franks
Juerd
Rod Adams

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved