Leonid already named the big one, With, but there are a few more approaches I'd like to outline. First of all you can use Evaluate if you wish to evaluate the entire body of the Function, and if the Function isn't part of some larger held expression. I fully agree with Leonid however that With is more general and less prone to surprises here. Nevertheless for reference:
f[a_] := Evaluate[a^2 #] &
f[7]
49 #1 &
Likewise you can Apply Function to a List (or any other inert Head without a hold attribute):
f[a_] := Function @@ {a^2 #}
f[7]
49 #1 &
For spot evaluation in a deeper expression (like With) you can use a replacement rule in an inverted fashion. (See this Q&A for more examples.)
f[a_] := a^2 /. x_ :> (x # + 2 + 2 &)
f[7]
49 #1 + 2 + 2 &
Note that 2 + 2 is not evaluated. Also note the placement of ( ) to group the right-hand-side of RuleDelayed, because & has low operator precedence.
Evaluate. Try:Evaluate[a^2 * # ] &– rm -rf Feb 08 '14 at 18:26