Dưới đây là mã của tôi:Có cách nào để sử dụng chức năng địa phương trong việc bảo vệ
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).
tôi nhận được lỗi:
32> c(problem_7).
./problem_7.erl:30: call to local/imported function is_prime/1 is illegal in guard
Và tôi không thể sử dụng chức năng địa phương trong 'if' thể hiện :
if is_prime(Counter)->
problem_7(Counter, Primes + 1, Counter + 1);
true ->
problem_7(Current, Primes, Counter + 1)
end.
Tôi chỉ tự hỏi liệu có cách nào để sử dụng chức năng cục bộ để bảo vệ và cách tôi có thể viết điều kiện bằng chức năng cục bộ không?
Trong trường hợp khoản, vâng, nhưng nếu điều khoản giống như bảo vệ và chịu sự hạn chế tương tự. – cthulahoops