Describe the difference between a procedure, function and anonymous pl/sql block. a function must return a value while a procedure doesn't have to.