Факториал в Nemerle
Пример для версий
ncc 0.9.3
Используется рекурсивное определение факториала; хвостовая рекурсия оптимизируется до цикла при компиляции. За счет использования типа int по умолчанию при попытке вычислить 13! возникает ошибка переполнения:
Unhandled Exception: System.OverflowException: Number overflow.
def fact(i)
{
| 0 => 1
| other => other * fact(other - 1)
}
for (mutable i=0; i<16; i++)
System.Console.WriteLine("{0}! = {1}", i, fact(i));
Комментарии
]]>blog comments powered by Disqus
]]>