lambda(3tcl) Utility commands for anonymous procedures lambda(3tcl)
______________________________________________________________________________
NAME
lambda - Utility commands for anonymous procedures
SYNOPSIS
package require Tcl 8.5
package require lambda ?1?
::lambda arguments body ?arg...?
::lambda@ namespace arguments body ?arg...?
______________________________________________________________________________
DESCRIPTION
This package provides two convenience commands to make the writing of
anonymous procedures, i.e. lambdas more proc-like. Instead of, for ex-
ample, 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 appli-
cation, 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 proce-
dure.
When invoked the body is run in a new procedure scope just un-
derneath 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 [http://core.tcl.tk/tcllib/reportlist]. Please
also report any ideas for enhancements you may have for either package
and/or documentation.
When proposing code changes, please provide unified diffs, i.e the out-
put of diff -u.
Note further that attachments are strongly preferred over inlined
patches. Attachments can be made by going to the Edit form of the
ticket immediately after its creation, and then using the left-most
button in the secondary navigation bar.
SEE ALSO
apply(3tcl), proc(3tcl)
KEYWORDS
anonymous procedure, callback, command prefix, currying, lambda, par-
tial application, proc
CATEGORY
Utility
COPYRIGHT
Copyright (c) 2011 Andreas Kupries, BSD licensed
tcllib 1 lambda(3tcl)