]]> ]]>

Числа Фибоначчи в Tcl

Пример для версий ActiveTcl 8.5, JTcl 2.1.0, Tcl 8.4, Tcl 8.5.7

Для вычисления чисел используется хвостовая рекурсия. Команда eval позволяет вычислить результат вызова функции fib с заданными аргументами без объявления fib в определенном пространстве имен.

proc fib {f1 f2 n} {
    if {$n==0} {
        return $f1
    } else {
        return [eval fib $f2 [expr {$f1 + $f2}] [expr {$n - 1}]]
    }
}

set s ""
for {set i 0} {$i < 16} {incr i} {
    append s [eval fib 1 1 $i] ", "
}
puts "$s..."

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам