Dlaczego porównywanie wyników funkcji jest wyjątkiem w Erlang?

Dlaczego jest to nielegalne?

min1_e_( F, X, E) ->
    if 
        F( X + 2*E ) < F( X + E ) ->   % ?
            min1_e_( F, X, E*2 );
        true ->
            E
    end.

To znaczy, jeśli zdefiniuję obie części wyrażenia osobno, działa dobrze. Ale porównywanie zwrotów funkcji powinno być trywialne, prawda? Myślisz, że brakuje mi czegoś więcej.

questionAnswers(1)

yourAnswerToTheQuestion