[erlang-questions] Add hibernate/1 (was: Best practice for defining functions with edoc,erlc,eunit and the dialyzer)

Richard O'Keefe ok@REDACTED
Mon Dec 7 03:21:27 CET 2009


On Dec 5, 2009, at 6:58 PM, Alpár Jüttner wrote:
> I can see another (very small) class:
>     (D) functions to be invoked by timer:tc/3.

This should be added to my quasi-EEP about hibernate/3.
It is in fact another class where there *shouldn't* be
an internal export, but it's forced because the library
isn't up to date yet.  I have revised my quasi-EEP to
include

     Add the following code to stdlib/src/timer.erl

     %%
     %% Measure the execution time (in microseconds) for a Fun.
     %%
     -spec tc(fun(() -> T)) -> {time(), T}.
     tc(Fun) when is_function(Fun, 0) ->
         Before = erlang:now(),
         Value = (catch Fun()),
         After = erlang:now(),
         {now_diff(After, Before), Value}.

     Add the following documentation for timer:

     tc(Fun)

         Types:
             Fun = fun()

         Evaluates Fun() and measures the elapsed real time.
         Returns {Time, Value}, where Time is the elapsed real time in
         microseconds, and Value is what is returned by the Fun().






More information about the erlang-questions mailing list