勝手に添削に勝手に横レス(全力で)

http://blog.livedoor.jp/dankogai/archives/50808279.html
無名関数の再帰は関数に名前をつけて(無名関数じゃなくなるけど)

(function fact(n) { return n <= 1 ? n : n * fact(n - 1) })(10);

とするほうが見やすいんじゃないかなぁ。汚染もしないし。
そういえばSafariで動かないんだったっけ?(試す環境がない)