#!/usr/local/bin/tclsh8.6 # Ackermann Funktion in tcl # https://wiki.tcl.tk/734 --> über time proc ack {m n} { if {$m == 0} { expr {$n + 1} } elseif {$n == 0} { ack [expr {$m - 1}] 1 } else { ack [expr {$m - 1}] [ack $m [expr {$n - 1}]] } } #interp recursionlimit {} 100000 set x 3 set y 6 # Eingabe von der Konsole aus # set x [expr {int([gets stdin])}]; # Force integer interpretation # set y [expr {int([gets stdin])}]; # ohne int ist es string # puts [ack $x $y] puts "Ack($x,$y) = [ack $x $y]" puts "ack: [time {ack $x $y} 1]"