history
, a 
built-in command, manipulates the history list.
 Synopsis  edit
-  
 - history ?option? ?arg arg ...?
 
Supported subcommands are:
-  
 - [history add] script ?exec?
 -  
 - [history change] newValue ?event?
 -  
 - [history clear]
 -  
 - [history event] ?event?
 -  
 - [history info] ?count?
 -  
 - [history keep] ?count?
 -  
 - [history nextid]
 -  
 - [history redo] ?event?
 
 Description  edit
history, with no additional arguments, is equivalent to 
[history info].
You could, of course, just use it as is, but at least parts of it are "intended for use in commands that implement new forms of history substitution" (as stated in the official documentation). There actually are such commands, implemented by the standard 
unknown (they are rather 
csh-like).
        if {$name eq "!!"} {
            set newcmd [history event]
        } elseif {[regexp {^!(.+)$} $name -> event]} {
            set newcmd [history event $event]
        } elseif {[regexp {^\^([^^]*)\^([^^]*)\^?$} $name -> old new]} {
            set newcmd [history event -1]
            catch {regsub -all -- $old $newcmd $new newcmd}
        }
        if {[info exists newcmd]} {
            tclLog $newcmd
            history change $newcmd 0
            uplevel 1 [list ::catch $newcmd  ::tcl::UnknownResult ::tcl::UnknownOptions]
            dict incr ::tcl::UnknownOptions -level
            return -options $::tcl::UnknownOptions $::tcl::UnknownResult
        }