-module(prog).
-export([main/0]).

main() ->
  F = fun(_, 0)   -> 1;                    
         (Fun, N) -> N * Fun(Fun, N-1) end,
  Fact5 = F(F, 5),
  io:format("5! = ~p~n", [Fact5]).