def factorial(n, acc)
{
| (0, _)
| (1, _) => acc
| _ => factorial(n - 1, n * acc)
}
def partedFactorial = factorial(_, 1);
Console.WriteLine(partedFactorial(5));
ZGVmIGZhY3RvcmlhbChuLCBhY2MpCnsKICB8ICgwLCBfKQogIHwgKDEsIF8pID0+IGFjYwogIHwgXyAgICAgID0+IGZhY3RvcmlhbChuIC0gMSwgbiAqIGFjYykKfQpkZWYgcGFydGVkRmFjdG9yaWFsID0gZmFjdG9yaWFsKF8sIDEpOwpDb25zb2xlLldyaXRlTGluZShwYXJ0ZWRGYWN0b3JpYWwoNSkpOw==