Counting Ways to Make Change -- Is this good functional/Lisp style?
Well, I could try to rewrite it to not use mutation, but it looks like the mutation is just there as a memoization optimization.  You could either pass the vector as an argument into calculate, or you could abstract the memoization via something like define/memo provided in memoize.plt, or just roll your own customized one as done here, which I think is just fine.

There are some surface changes you can make as well.  For starters, the search-for function doesn't do anything with its arguments, so they can be removed.  Next, defines have an explicit begin around the body, so the begin in update can be removed as can the begin near what your comments call the entry point.

The (init-table 4) is an optimization (works without it) that I'm not sure is even worth putting in; especially since I think it deserves a comment to explain that the magic number 4 is because (make-change n) should return 1 for 1 &lt;= n &lt;= 4. If you decide to leave it in, at least replace it by (vector-fill! v 1 0 4) assuming your using srfi-43.  It might be different if your scheme dialect has it's own vector libs.

Finally, mapping coin number to value could use case  instead of cond for a little less syntax as in:

(define (coin-value n)
  (case n
    ((1) 1)
    ((2) 5)
    ((3) 10)
    ((4) 25)
    ((5) 50)))