[//000000001]: # (lambda \- Utility commands for anonymous procedures) [//000000002]: # (Generated from file 'lambda\.man' by tcllib/doctools with format 'markdown') [//000000003]: # (Copyright © 2011 Andreas Kupries, BSD licensed) [//000000004]: # (lambda\(n\) 1 tcllib "Utility commands for anonymous procedures")
[ Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]
# NAME lambda \- Utility commands for anonymous procedures # Table Of Contents - [Table Of Contents](#toc) - [Synopsis](#synopsis) - [Description](#section1) - [COMMANDS](#section2) - [AUTHORS](#section3) - [Bugs, Ideas, Feedback](#section4) - [See Also](#seealso) - [Keywords](#keywords) - [Category](#category) - [Copyright](#copyright) # SYNOPSIS package require Tcl 8\.5 package require lambda ?1? [__::lambda__ *arguments* *body* ?*arg*\.\.\.?](#1) [__::lambda@__ *namespace* *arguments* *body* ?*arg*\.\.\.?](#2) # DESCRIPTION This package provides two convenience commands to make the writing of anonymous procedures, i\.e\. lambdas more __[proc](\.\./\.\./\.\./\.\./index\.md\#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\. When proposing code changes, please provide *unified diffs*, i\.e the output 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\(n\), proc\(n\) # KEYWORDS [anonymous procedure](\.\./\.\./\.\./\.\./index\.md\#anonymous\_procedure), [callback](\.\./\.\./\.\./\.\./index\.md\#callback), [command prefix](\.\./\.\./\.\./\.\./index\.md\#command\_prefix), [currying](\.\./\.\./\.\./\.\./index\.md\#currying), [lambda](\.\./\.\./\.\./\.\./index\.md\#lambda), [partial application](\.\./\.\./\.\./\.\./index\.md\#partial\_application), [proc](\.\./\.\./\.\./\.\./index\.md\#proc) # CATEGORY Utility # COPYRIGHT Copyright © 2011 Andreas Kupries, BSD licensed