logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

lambda - Utility commands for anonymous procedures

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 TcllibTrackers [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 unifieddiffs, 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.

Category

       Utility

Commands

::lambdaargumentsbody ?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@namespaceargumentsbody ?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.

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]

Keywords

       anonymous procedure, callback, command prefix, currying, lambda, partial application, proc

Name

       lambda - Utility commands for anonymous procedures

See Also

apply(3tcl), proc(3tcl)

Synopsis

       package require Tcl8.59

       package require lambda?1.1?::lambdaargumentsbody ?arg...?

       ::lambda@namespaceargumentsbody ?arg...?

________________________________________________________________________________________________________________

See Also