-- tail recursive definition of factorial, using a helper function
factorial_tail(n) = fac_helper(1,n)
fac_helper(p, 0) = p
fac_helper(p, n) = fac_helper(p*n, n-1)
-- simple recursive definition of factorial (can get inefficient for large n)
factorial(n) =
if n>0 then n*factorial(n-1)
else 1
main
= print $ factorial
_tail
(15)
LS0gdGFpbCByZWN1cnNpdmUgZGVmaW5pdGlvbiBvZiBmYWN0b3JpYWwsIHVzaW5nIGEgaGVscGVyIGZ1bmN0aW9uCmZhY3RvcmlhbF90YWlsKG4pID0gZmFjX2hlbHBlcigxLG4pCgpmYWNfaGVscGVyKHAsIDApID0gcApmYWNfaGVscGVyKHAsIG4pID0gZmFjX2hlbHBlcihwKm4sIG4tMSkKCgotLSBzaW1wbGUgcmVjdXJzaXZlIGRlZmluaXRpb24gb2YgZmFjdG9yaWFsIChjYW4gZ2V0IGluZWZmaWNpZW50IGZvciBsYXJnZSBuKQpmYWN0b3JpYWwobikgPSAKCWlmIG4+MCB0aGVuIG4qZmFjdG9yaWFsKG4tMSkKCSAgICAgICBlbHNlIDEKCgptYWluID0gcHJpbnQgJCBmYWN0b3JpYWxfdGFpbCgxNSk=