Skip to main content

Syntax changes for python lambdas.

Project description

PyPI version
Build Status
Supports Python 2.6 - 3.5

What is this?

A better python lambda syntax for your anonymous function needs.

Write a = (x) > x instead of a = lambda x: x. See below for syntax caveats.

Get started immediately: pip install lambdazen

from lambdazen import zen
def otherfunc(*args):
    print sum(args)

# The zen decorator allows you to define lambdas with a better syntax
@zen
def example():
    example.epic = (x, y, z) > otherfunc(x, y, z)

    # Multiline lambdas are a tuple or list of statements
    # The assignment operator inside is << instead of =
    # The last statement is the return value
    example.multiline = (x, y, z) > (
        s << otherfunc(x, y, z),
        s
    )

# Call function so the lambdas are bound to function attributes
example()

example.epic(1,2,3)
>>> 6

example.multiline(1,2,3)
>>> 6

Caveats

  • better lambdas can only be defined in a function with the @zen attribute

  • any other code in this function will be executed, it’s best to use the function as a container of lambdas

How does it work

Read the story

TLDR; Runtime in-memory source rewriting and recompilation

Additional Examples

from lambdazen import zen

# Lambdas don't need to be bound to the function
@zen
def normalizeString(nS):
    transforms = [
        (s) > s.strip(),
        (s) > s.lower(),
        (s) > s.replace(' ', '_')]

    apply_all = (transforms_list, s) > (
        is_done << (len(transforms_list) == 0),
        current_transform << transforms_list[0] if not is_done else None,
        remaining_transforms << transforms_list[1:] if not is_done else None,
        current_transform(apply_all(remaining_transforms, s)) if not is_done else s)

    return apply_all(transforms, nS)

normalizeString("Abraham Lincoln")
>>> "abraham_lincoln"

Project details


Download files

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

Source Distribution

lambdazen-0.1.7.tar.gz (3.8 kB view details)

Uploaded Source

File details

Details for the file lambdazen-0.1.7.tar.gz.

File metadata

  • Download URL: lambdazen-0.1.7.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for lambdazen-0.1.7.tar.gz
Algorithm Hash digest
SHA256 a7bb135de9d96853185b13bae07c95b21f0ac7d0ac2750b9605d616f89999930
MD5 be1f6ec116ac13627852c92f0a871d4f
BLAKE2b-256 0b6bf8a72861c9dc87bb615a9b4c803665c5c2f48528b81149ea4d6a9f7488ef

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page