Жергілікті функцияны қарауылда қолдану тәсілі бар ма

Міне, менің коды:

is_prime(Num)->
    length(list_of_dividers(Num)) == 0.

problem_7(Current, Primes, Counter) when Primes >= 10001->
    Current;
problem_7(Current, Primes, Counter) when is_prime(Counter) ->
    problem_7(Counter, Primes + 1, Counter + 1);
problem_7(Current, Primes, Counter) ->
    problem_7(Current, Primes, Counter).

Маған қате жіберілді:

32> c(problem_7).
./problem_7.erl:30: call to local/imported function is_prime/1 is illegal in guard

Мен 'if' өрнегінде жергілікті функцияны қолдана алмаймын:

if is_prime(Counter)->
    problem_7(Counter, Primes + 1, Counter + 1);
   true ->
    problem_7(Current, Primes, Counter + 1)
end.

Мен Жергілікті функцияны қарауылда пайдаланудың қандай-да бір әдісі бар ма және жергілікті функциямен шартты қалай жазуға болады?

10
задан demas 28 June 2011 в 10:50
поделиться