Done factorial. I wish this were haskell...