Использовать сопоставление с образцом!
{_, NewQueue} = queue:out_r(OldQueue)
Учитывая, что {value, Item}
и empty
возвращаются в качестве первого элемента кортежа, игнорирование первого элемента сделает то, что вы хотите.
Обратите внимание, что модуль очереди поддерживает 3 API. Другие API могут делать то, что вы хотите лучше. В этом случае у вас может быть та же функция, за исключением того, что она падает, если очередь пуста:
drop_r(Q1) -> Q2
Returns a queue Q2 that is the result of removing the rear item from Q1.
Fails with reason empty if Q1 is empty.
Выбор одного или другого зависит от ваших приложений и того, что вы ожидаете в очереди, если вы можете обработать пустое и т. Д.