Я пытаюсь скомпилировать следующий код: Erlangвремя функции в Эрл
my_time_func(F) ->
{Mega, Mini, Micro} = now(),
F,
{SMega,SMini,SMicro} = now(),
{FMega,FMini,FMicro} = {SMega - Mega, SMini - Mini, SMicro - Micro},
if
FMicro < 0 -> %guard 1
if
FMini - 1 < 0 -> {FMega - 1, FMini, FMicro + (FMicro * 2) + 1};
true > 0 -> {FMega, FMini - 1, FMicro + (FMicro * 2) + 1};
end;
true -> %guard 2
if
FMini < 0 -> {FMega - 1, FMini + (FMini * 2) + 1, FMicro} ;
true > 0 -> {FMega,FMini,FMicro} ;
end;
end.
Однако он говорит, что у меня есть ошибка синтаксиса до конца в строке 19 (это является первым концом). Я пропустил какую-то точку с запятой?
Первоначально я собирался опубликовать это на обзоре кода, потому что этот код очень «уродливый». Есть ли лучший способ сделать что-то подобное? (время функции) без использования встроенной функции и предпочтительно только модуль erlang.
Другим решением является использование функции в 'timer' модуля, либо' таймер: дц/1/2/3' сделать все или его 'Таймер: now_diff/2', если вы просто хотите, разница во времени , – rvirding