Re:Unpacking Elixir: Concurrency
by throwawaymaths on Friday August 25, 2023 @08:28AM
(#37260938)
I'm pretty sure erlangs :array is just a skin over tuple, so it's ~O(1) but not contiguous. might be O(log n) for dynamic arrays. The only truly array datatype in Erlang is :atomics
Re:Unpacking Elixir: Concurrency
by davydog187 on Friday August 25, 2023 @09:02AM
(#37261212)
Erlang tuples are contiguous in memory for primitive values https://blog.edfine.io/blog/2016/06/28/erlang-data-represent...
Re:Unpacking Elixir: Concurrency
by throwawaymaths on Friday August 25, 2023 @08:33PM
(#37268740)
Array doesn't guarantee to be put into a single tuple. It might be nested.
Vectors are usually also homogeneous about the data they hold, because each element should occupy the same fixed amount of memory, such as i*item_size gievs you back the offset of the element i in memory.
Anyway, in Elixir you can use the Erlang's :array module