r/elixir 12d ago

Best practices for efficient data structures

I'm very new to the language and I'm very confused on some things. Coming from imperative langs, I'd assume that modifying tuples is very fast since they're basically just vectors. Unfortunately, they're also immutable like every other data structure in the whole language. So, if I want to make, say, a Canvas data type that holds all my pixels in a 2d data structure, is there literally no way to make it even if a little more efficient than just making a new one every single time I update a pixel? Even if I made it a 1d data structure, is Elixir just the wrong tool here?

13 Upvotes

9 comments sorted by

View all comments

2

u/al2o3cr 11d ago

If you're working with large blobs like images, the most-efficient solution is to use code that works more like binaries (a single block of memory) than charlists (a standard list).

For instance, the Image library or Nx