In particular all Tcl procedures have global scope even if declared within another procedure which means that their proliferation has to be managed. Tcl variables on the other hand have local scope within procedures. Lambda calculus and functional language recognise only functions. Within the context of Tcl, lambda abstractions are assigned to variables. Assigning Lambda abstractions to procedures would acheive no useful result by definition and is a pointless exercise.
Lambda abstractions are procedures masquerading as variables and as such they have local scope.
This can be controlled by the Tcl substr command. The way the lambda procedure works is illustrated by example. The example chosen is the classic lambda constructor, head, tail expressions though we will only use cons and head. This is not the usual notation for lambda abstraction. This is then followed by the parameter list for bound variables, and then followed by the body.