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 ]

Eric Wilhelm (6389)

Eric Wilhelm
  (email not shown publicly)

Journal of Eric Wilhelm (6389)

Sunday September 03, 2006
07:39 PM


[ #30871 ]

Working on today and again trying to work around the fact that perl 5 prototypes don't apply to methods (thus, I want to export a handy one-character function which is a shortcut to saying "sub {...}" -- Yes, I'm saving all of two characters and a space. If that doesn't sound worthwhile, move along, nothing to see here.)

First, charge the batteries in your propeller beanie...

I had previously settled on _{...} (e.g. "sub _(&) {$_[0]}"), but then discovered the mysterious globalness of *_ and so now I'm using F{...}, but wanting something slightly more meaningful.

  use utf8;
  sub λ (&) {$_[0]};
  λ{print "foo"}->();

Excellent! No, I'm not putting that in the API just yet, but I'm seriously thinking about it. The only trick is to get the keyboard and/or vim setup worked-out so that it's not any harder to type than s-u-b-<space>.

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.
  • You could turn on vim's digraphs, and type l*.

    vim magic for this from my .vimrc:
      set encoding=utf-8
      set digraph
    Alternatively, you could use a imap or iab for it, e.g. imap ,\ λ.

    • You could turn on vim's digraphs, and type l*.

      Uh, make that ctrl+k l*. That's a lot harder to type than sub , so I'd go for the imap option.
      • I haven't taken the plunge in the API quite yet, but I did put this in my .vimrc:

            imap <C-L> λ{}<ESC>:set encoding=utf8<CR>i

        And of course, you could just make that type "sub {" for you as well, but lambda reads better :-D
  • If it's a public interface, maybe offer an alternative?

    use utf8;
    sub &#955; (&) { shift }
    sub n (&) { shift }