SkillAgentSearch skills...

Deque

Fast bounded deque using two rotating lists.

Install / Use

/learn @discord/Deque
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Deque

Master Hex.pm Version

Erlang only supports fast prepends to lists while appending requires a full copy. Getting the size of a list is also a O(n) operation. This library implements a deque using two rotating lists to support fast append and prepend as well as O(1) size via an internal counter.

Features

  • Bounded size
  • Enumerable protocol
  • Collectable protocol
  • Inspect protocol

Usage

Add it to mix.exs

defp deps do
  [{:deque, "~> 1.0"}]
end

Then use it like other Elixir data structures.

# Deque<[3, 2, 1]>
deque =
  Deque.new(5)
  |> Deque.appendleft(1)
  |> Deque.appendleft(2)
  |> Deque.appendleft(3)

# Deque<[2, 1]>
{3, deque} = Deque.popleft(deque)

# Deque<[6, 7, 8, 9, 10]>
Enum.into(0..10, Deque.new(5))

License

Deque is released under the MIT License. Check LICENSE file for more information.

Related Skills

View on GitHub
GitHub Stars156
CategoryDevelopment
Updated2mo ago
Forks15

Languages

Elixir

Security Score

100/100

Audited on Jan 9, 2026

No findings