package lambda;
$VERSION = v0.0.1;

use warnings;
use strict;

=encoding utf8

=head1 NAME

lambda - a shortcut for sub {...}


Instead of:

  my $code = sub {...};


  my $code = λ{...};

Note: If your perldoc (or terminal (or browser)) isn't properly
rendering unicode, the above looks like an 'I' followed by a double
arrow (or maybe just an 'X'.)  It is a unicode lowercase lambda (0x3BB.)

=head1 utf8

This module has import() and unimport() methods which mimic
Thus, instead of saying 'C<use utf8; use lambda;>', you can simply say
'C<use lambda;>'.

The caveat to this is that 'C<no lambda;>' also means 'C<no utf8;>'.  I
blame C<$^H> (suggestions welcome, and yes 5.10 might require this to


My .vimrc has:

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

In insert mode (only), this types the lambda and matching braces, sets
the encoding, then puts your cursor between the braces.


use utf8;

sub import {
  $^H |= $utf8::hint_bits;
  my $callpkg = caller();
  no strict 'refs';
  *{$callpkg . '::' . 'λ'} = sub (&) {$_[0]};

sub unimport {
  $^H &= ~$utf8::hint_bits;
  my $callpkg = caller();
  no strict 'refs';
  delete ${$callpkg . '::'}{'λ'};

=head1 Methods

=head2 import

Puts λ in your symbol table, turns on utf8 parsing.

=head2 unimport

Removes λ from your symbol table, turns off utf8 parsing.

=head1 AUTHOR

Eric Wilhelm @ <ewilhelm at cpan dot org>

=head1 BUGS

If you found this module on CPAN, please report any bugs or feature
requests through the web interface at L<>.  I will be
notified, and then you'll automatically be notified of progress on your
bug as I make changes.

If you pulled this development version from my /svn/, please contact me


Copyright (C) 2007 Eric L. Wilhelm, All Rights Reserved.


Absolutely, positively NO WARRANTY, neither express or implied, is
offered with this software.  You use this software at your own risk.  In
case of loss, no person or entity owes you anything whatsoever.  You
have been warned.

=head1 LICENSE

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.


# vi:ts=2:sw=2:et:sta:encoding=utf8