Stories
Slash Boxes
Comments

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)
http://scratchcomputing.com/

Journal of Eric Wilhelm (6389)

Sunday September 03, 2006
08:39 PM

lambda

[ #30871 ]

Working on list.pm 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.
 Full
 Abbreviated
 Hidden
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 }

    —Theory