tailcall - Online Linux Manual Page
Section : n
Updated : 8.6
Source : Tcl
Note : Tcl Built-In Commands
NAMEtailcall − Replace the current procedure with another command
SYNOPSIStailcall command ?arg ...?
.\}
DESCRIPTIONThe tailcall command replaces the currently executing procedure, lambda application, or method with another command. The command, which will have arg ... passed as arguments if they are supplied, will be looked up in the current namespace context, not in the caller's. Apart from that difference in resolution, it is equivalent to: return [uplevel 1 [list command ?arg ...?]]
This command may not be invoked from within an uplevel into a procedure or inside a catch inside a procedure or lambda.
EXAMPLECompute the factorial of a number. proc factorial {n {accum 1}} {
if {$n < 2} {
return $accum
}
tailcall factorial [expr {$n - 1}] [expr {$accum * $n}]
}
Print the elements of a list with alternating lines having different indentations. proc printList {theList} {
if {[llength $theList]} {
puts "> [lindex $theList 0]"
tailcall printList2 [lrange $theList 1 end]
}
}
proc printList2 {theList} {
if {[llength $theList]} {
puts "< [lindex $theList 0]"
tailcall printList [lrange $theList 1 end]
}
}
SEE ALSOapply(n), proc(n), uplevel(n)
KEYWORDScall, recursion, tail recursion 0
Johanes Gumabo
Data Size : 8,660 byte
man-tailcall.nBuild : 2025-03-22, 13:26 :
Visitor Screen : x
Visitor Counter ( page / site ) : 26 / 2,271,240
Visitor ID : :
Visitor IP : 216.73.216.210 :
Visitor Provider : AMAZON-02 :
Provider Position ( lat x lon ) : 39.962500 x -83.006100 : x
Provider Accuracy Radius ( km ) : 20 :
Provider City : Columbus :
Provider Province : Ohio , : ,
Provider Country : United States :
Provider Continent : North America :
Visitor Recorder : Version :
Visitor Recorder : Library :
Online Linux Manual Page : Version : Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 25.03.22
Online Linux Manual Page : Library : lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page : Library : lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base : Version : Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base : Library : lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.
ERROR : Need New Coding : (rof_escape_sequence_block|26|(null)|(null)|-1|140) (parse_manual_page_|254|tailcall.n|282/140|══─}─══|.══─}─══
) (htmlprn|160|tailcall.n|282/140|.══─}─══|.══─}─══
) (rof_escape_sequence|93|tailcall.n|282/141|\}|.\}
) (parse_manual_page_|254|tailcall.n|282/141|\}|.\}
)