История изменений
Исправление cluge, (текущая версия) :
Фибоначчи, выглядит она так: https://i.postimg.cc/D0W8v7XZ/image.png
Господа, вот даже не соц. опрос, а просто опрос. Ответьте, если можете.
Тикль у нас знают три с половиной землекопа, на Украине его не знает никто. Сейчас посмотрите эту схемку по ссылке и посмотрите код на тикле. Во что вы быстрее сможете вьехать?
Циклом:
proc fib n {
lassign {0 1} a b
while {$n > 0} {
lassign [list $b [expr {$a + $b}]] a b
incr n -1
}
return $a
}
puts [fib [gets stdin]]
Простая рекурсия:
proc fib n {
expr {$n < 2 ? $n : [fib [expr {$n - 1}]] + [fib [expr {$n - 2}]]}
}
puts [fib [gets stdin]]
Хвостовая рекурсия:
proc fib n {
proc fibt {a b n} {
expr {$n <= 0 ? $b : [tailcall fibt [expr {$a + $b}] $a [incr n -1]]}
}
fibt 1 0 $n
}
puts [fib [gets stdin]]
ЗЫ: Метапрог, почему у тебя на входе схем всегда константы? З0 версия метапрога, а до сих пор не осилил ввод с консоли?
ЗЫЫ: Метапрог, давай посчитай с помощью метапрога милллионное число Фибоначчи, моя убогая скриптуха посчитала за приемлемое время. Печатать его сюда не буду, потому что оно настолько огромно, что столько атомов в видимой вселенной нет.
Исправление cluge, :
Фибоначчи, выглядит она так: https://i.postimg.cc/D0W8v7XZ/image.png
Господа, вот даже не соц. опрос, а просто опрос. Ответьте, если можете.
Тикль у нас знают три с половиной землекопа, на Украине его не знает никто. Сейчас посмотрите эту схемку по ссылке и посмотрите код на тикле. Во что вы быстрее сможете вьехать?
Циклом:
proc fib n {
lassign {0 1} a b
while {$n > 0} {
lassign [list $b [expr {$a + $b}]] a b
incr n -1
}
return $a
}
puts [fib [gets stdin]]
Простая рекурсия:
proc fib n {
expr {$n < 2 ? $n : [fib [expr {$n - 1}]] + [fib [expr {$n - 2}]]}
}
puts [fib [gets stdin]]
Хвостовая рекурсия:
proc fib n {
proc fibt {a b n} {
expr {$n <= 0 ? $b : [tailcall fibt [expr {$a + $b}] $a [incr n -1]]}
}
fibt 1 0 $n
}
puts [fib [gets stdin]]
ЗЫ: Метапрог, почему у тебя на входе схем всегда константы? З0 версия метапрога, а до сих пор не осилил ввод с консоли?
ЗЫЫ: Метапрог, давай посчитай с помощью метапрога милллионное число Фибоначчи, моя убогая скриптуха посчитала за приемлемое время.
Исходная версия cluge, :
Фибоначчи, выглядит она так: https://i.postimg.cc/D0W8v7XZ/image.png
Господа, вот даже не соц. опрос, а просто опрос. Ответьте, если можете.
Тикль у нас знают три с половиной землекопа, на Украине его не знает никто. Сейчас посмотрите эту схемку по ссылке и посмотрите код на тикле. Во что вы быстрее сможете вьехать?
Циклом:
proc fib n {
lassign {0 1} a b
while {$n > 0} {
lassign [list $b [expr {$a + $b}]] a b
incr n -1
}
return $a
}
puts [fib [gets stdin]]
Простая рекурсия:
proc fib n {
expr {$n < 2 ? $n : [fib [expr {$n - 1}]] + [fib [expr {$n - 2}]]}
}
puts [fib [gets stdin]]
Хвостовая рекурсия:
proc fib n {
proc fibt {a b n} {
expr {$n <= 0 ? $b : [tailcall fibt [expr {$a + $b}] $a [incr n -1]]}
}
fibt 1 0 $n
}
puts [fib [gets stdin]]
ЗЫ: Метапрог, почему у тебя на входе схем всегда константы? З0 версия метапрога, а до сих пор не осилил ввод с консоли?