fact() with closure