Fixpoint operator without rec
rec
val fix = (fn x => x x) (fn fix' => fn f => fn x => f((fix' fix') f) x); val fac' = fn f => fn n => if (n=0) then 1 else n*f(n-1); val fac = fix fac';