Tcl Library Source Code
lambda - Utility commands for anonymous procedures
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2018 Conference, Houston/TX, US, Oct 15-19
Send your abstracts to tclconference@googlegroups.com or submit via the online form
by Aug 20.

[ Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]

lambda(n) 1 tcllib "Utility commands for anonymous procedures"

Name

lambda - Utility commands for anonymous procedures

Description

This package provides two convenience commands to make the writing of anonymous procedures, i.e. lambdas more proc-like. Instead of, for example, to write

     set f {::apply {{x} {
        ....
     }}}

with its deep nesting of braces, or

     set f [list ::apply {{x y} {
        ....
     }} $value_for_x]

with a list command to insert some of the arguments of a partial application, just write

     set f [lambda {x} {
        ....
     }]

and

     set f [lambda {x y} {
        ....
     } $value_for_x]

COMMANDS

::lambda arguments body ?arg...?

The command constructs an anonymous procedure from the list of arguments, body script and (optional) predefined argument values and returns a command prefix representing this anonymous procedure.

When invoked the body is run in a new procedure scope just underneath the global scope, with the arguments set to the values supplied at both construction and invokation time.

::lambda@ namespace arguments body ?arg...?

The command constructs an anonymous procedure from the namespace name, list of arguments, body script and (optional) predefined argument values and returns a command prefix representing this anonymous procedure.

When invoked the body is run in a new procedure scope in the namespace, with the arguments set to the values supplied at both construction and invokation time.

AUTHORS

Andreas Kupries

Bugs, Ideas, Feedback

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category lambda of the Tcllib Trackers. Please also report any ideas for enhancements you may have for either package and/or documentation.

See Also

apply(n), proc(n)

Category

Utility