'''`lproc`''' is like `[proc]`, execpt that the body is a list of lists, and no [pure string%|%string representation] of the body is generated. ** See Also ** [Playing newLISP]: Employs a similar pattern ** Implementation ** ====== proc lproc {name args list} { uplevel 1 [list ::interp alias {} [namespace current]::$name {} ::apply [ list [list list {*}$args] { ::apply [list {} { upvar 1 list list ::foreach line $list[unset list] { if {[catch {::uplevel 1 $line} cres copts]} { dict incr copts -level return -options $copts $cres } } } [namespace current]] } [uplevel 1 {namespace current}] ] $list] } ====== <> proc