I would expect all of the following to give the same answer (2.12467) but only half of them give this answer. The others seem to be using the default NormFunction:>(Norm[#,2]&). Can anyone explain this?
α = 3;
n /. FindFit[{1, 3, 9, 20}, x^n, n, x, NormFunction :> ((Null; Norm[#, α]) &)]
n /. FindFit[{1, 3, 9, 20}, x^n, n, x, NormFunction :> ((Norm[#, α]) &)]
n /. FindFit[{1, 3, 9, 20}, x^n, n, x, NormFunction :> (Norm[#, 3] &)]
Block[{α = 3}, n /. FindFit[{1, 3, 9, 20}, x^n, n, x, NormFunction :> (Norm[#, α] &)]]
With[{α = 3}, n /. FindFit[{1, 3, 9, 20}, x^n, n, x, NormFunction :> (Norm[#, α] &)]]
Module[{α = 3}, n /. FindFit[{1, 3, 9, 20}, x^n, n, x, NormFunction :> (Norm[#, α] &)]]
(* Outputs: 2.12467, 2.13284, 2.12467, 2.13284, 2.12467, 2.13284 *)

ato3therefore the expression is exactly equivalent to the second case (indeed, if executed in that order, theBlockis even redundant becauseaalready has the value3). TheWithreplaces theaby the literal3, therefore it's exactly equivalent to the third case. AndModulereplacesaby a temporary variable which is set to 3, but of course the name (and life time) of the variable doesn't matter, therefore it's again equivalent to case 2. – celtschk May 1 '12 at 19:20