title: Difference between the 'controller', 'link' and 'compile' functions when defining a directive
body: <p>Some places seem to use the controller function for directive logic and others use link. The tabs example on the angular homepage uses controller for one and link for another directive. What is the difference between the two? </p>