Skip to main content
Help us improve Python packaging – donate today!

Easy way to make anonymous functions by partial application of operators.

Project Description

An easy way to make lambdas by partial application of python operators.

Inspired by Perl 6 one, see http://perlcabal.org/syn/S02.html#The_Whatever_Object

Usage

from whatever import _, that

# get a list of guys names
names = map(_.name, guys)
names = map(that.name, guys)

odd = map(_ * 2 + 1, range(10))

squares = map(_ ** 2, range(100))
small_squares = filter(_ < 100, squares)

best = max(tries, key=_.score)
sort(guys, key=-that.height)

factorial = lambda n: reduce(_ * _, range(2, n+1))

NOTE: chained comparisons cannot be implemented since there is no boolean overloading in python.

CAVEATS

In some special cases whatever can cause confusion:

_.attr # this makes callable
obj._  # this fetches '_' attribute of obj

_[key] # this works too
d[_]   # KeyError, most probably

_._    # short for attrgetter('_')
_[_]   # short for lambda d, k: d[k]

if _ == 'Any value':
    # You will get here, definitely
    # `_ == something` produces callable, which is true

[1, 2, _ * 2, None].index('hi') # => 2, since bool(_ * 2 == 'hi') is True

Also, whatever sometimes fails on late binding:

(_ * 2)('2') # -> NotImplemented

Release history Release notifications

This version
History Node

0.5

History Node

0.4.3

History Node

0.4.2

History Node

0.4.1

History Node

0.4

History Node

0.3

History Node

0.2.2

History Node

0.2.1

History Node

0.2

History Node

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
whatever-0.5.tar.gz (4.7 kB) Copy SHA256 hash SHA256 Source None Aug 24, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page