Здравствуйте, Vermicious Knid, Вы писали:
VK>Самый близкий к истине вариант привел xbit. А вот полностью идеологически правильный и грамотный(имхо) вариант:
VK>VK>fact(n : uint) : ulong
VK>{
VK> | 0 => 1
VK> | 1 => 1
VK> | _ => (x :> ulong) * fact(x - 1)
VK>}
VK>
Не понял этого шаманства. Соственно вот так будет достаточно:
def Fact(x : uint) : ulong
{ | 0U | 1U => 1UL
| _ => x * Fact(x - 1U)
}
WriteLine(Fact(20));
ЗЫ
А вообще, когда я вижу примеры факториала с Фибоначи, то понимаю, что начилась функциональная пенесометрия.
Главное, что по жизни подобный код невозможно встретить днем с огнем. Но как только появляется функциональный язык, то в примерах раз за разом появляются Финбоначи и факториалы.

... << RSDN@Home 1.2.0 alpha rev. 637>>