Given this scheme procedure: (define foo (lambda (x) (if (= x 0) 1 (* x (foo (- x 1))) ) )) what does this procedure do?
1) compute x!
2) square(x)
3) cube(x)
4) absolute(x)