Первый стабильный релиз.
Для факториала 13 и более из-за слишком большого числа результата возвращается неверное значение. Также не получилось убрать пробел между аргументом и знаком "!". В результате:
0 ! = 0 1 ! = 1 2 ! = 2 3 ! = 6 4 ! = 24 5 ! = 120 6 ! = 720 7 ! = 5040 8 ! = 40320 9 ! = 362880 10 ! = 3628800 11 ! = 39916800 12 ! = 479001600 13 ! = 1932053504 14 ! = 1278945280 15 ! = 2004310016 16 ! = 2004189184
#! /usr/bin/toka [ dup 1 > [ dup 1 - recurse * ] ifTrue ] is factorial 0 17 [ i . i ." ! = " i factorial . cr ] countedLoop bye
[ dup 1 > [ dup 1 - recurse * ] ifTrue ] is factorial
0 17 [ i . i ." ! = " i factorial . cr ] countedLoop
bye