Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

schwern (1528)

  (email not shown publicly)
AOL IM: MichaelSchwern (Add Buddy, Send Message)

Schwern can destroy CPAN at his whim.

Journal of schwern (1528)

Tuesday September 30, 2008
07:51 AM

Name that function

[ #37575 ]

I got an obvious feature request for Method::Signatures to make it work for normal functions. I haven't stoked mst's brain with enough drugs yet to have Devel::Declare override sub, so it would have to use another name. What would it be?

"def", "fun", "func", "function", "subroutine", "coke" (ya know, fish for corporate sponsorship)?

A tangentially related problem is once we do know how to override "sub" what is the syntax to use signatures and prototypes together? One answer is "don't", leave "sub" as is and use a new keyword. But as awful as prototypes are, they have their uses.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • I like the /fun.*/ variants, 'fun' being my favorite.

        fun add($x, $y) { $x + $y }

    or perhaps

        $add = fun($x, $y) { $x + $y }

    eh? nice and short. Though now that I look at it, 'func' might be slightly more readable for the uninitiated. But they might have other problems with this fun insanity!

  • now I have this song in my head...

    "...conjunction junction, what's your function..."

  • I'd like to see "function" (or a variant) reserved for something carrying some promise of being side-effect free. That'd be useful for functional programming.

    I'd suggest "procedure" or something like it for ordinary subs. I wouldn't even consider trying mixing prototypes and signatures, so I'd like to keep "sub" as is.

    That way, you've covered three major programming styles.

  • I'd like to keep it short, i.e. "fun" or "def". "procedure" feels like lower-case COBOL.

  • lambda, lambda, lambda

    (or, you could use the actual greek symbol)