Почему сравнение результатов функции является недопустимым защитным исключением в Erlang?

Почему это незаконно?

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

Я имею в виду, что если я определяю обе части выражения по отдельности, все работает нормально. Но сравнение результатов функций должно быть тривиальным, не так ли? Думаю, мне не хватает чего-то большего под этим.

9
задан akalenuk 2 June 2012 в 09:52
поделиться