Пожалуйста, помогите мне правильно написать функцию на Erlang. Функция должна удалять пакеты (которые успешно отправлены) из очереди. Я думаю, это должно быть так, но это не сработает. Erlang говорит:. Нелегальный рисунок на линии 3 :(Erlang: функция с переменной из другой области
delete_pkts(AcksList, State) ->
NewSendingList = lists:filter(fun(X) ->
lists:any(fun(E) -> case E of X#internal_packet.message_number -> false; _ -> true end end, AcksList)
end, State#state.pkt_send),
State#state{ pkt_send = NewSendingList }.
Предполагая, например, что message_number является вторым полем во внутреннем пакете записи X # internal_packet.message_number является синонимом элемента (3, X), и это вызов функции, который не разрешен ни в предложении –