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 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 [
http://core.tcl.tk/tcllib/reportlist]. Please also
report any ideas for enhancements you may have for either package and/or
documentation.
SEE ALSO¶
apply(3tcl), proc(3tcl)
KEYWORDS¶
anonymous procedure, callback, command prefix, currying, lambda, partial
application, proc
CATEGORY¶
Utility
COPYRIGHT¶
Copyright (c) 2011 Andreas Kupries, BSD licensed