6 ms·
When all you have is Rust everything starts to look like adjustable array.
by varjag 7y ago
When all you have is Rust everything starts to look like adjustable array.
- saagarjha 7y agoWhat’s an adjustable array? A vector?
- varjag 7y agoA vector is a one-dimensional array. Adjustable arrays can have arbitrary number of dimensions, although am not sure if it's a thing in Rust.
- staticassertion 7y agoThat just sounds like a graph.
- varjag 7y agoHow in the heaven an array can sound like a graph?
- staticassertion 7y agoSounds like one to me.
- dpbriggs 7y agoI've spent years programming rust and I'm not sure what you mean. Do you mean arrays of tuples, or nested arrays?
- varjag 7y agoI mean a multi-dimensional array.
- dpbriggs 7y agoThanks! Why does everything look like a multi-dimensional array for you in rust?
- varjag 7y agoAn array (an ADT) can be arbitrary dimensional, with one-dimensional case often called vector (and two-dimensional called matrix). An array can also be adjustable, both in one and multi-dimension variants. So a vector can be both adjustable and non adjustable, and some language do have both versions. Some language have adjustable one-dimensional array/vector as the only dynamic aggregate/ordered datatype. And to answer the post I replied to originally, a vector in rust is a one-dimensional adjustable array. To answer your question above, no that's not what I meant, sorry for not being clear enough from the beginning.
- dpbriggs 7y agoThanks for clarifying. I think we're just using different definitions. The only real definition of an array I've encountered in work and school is that it's just a one dimensional collection of elements, usually of static size. A vector depending on context is usually the same thing as an array but you conveniently change the size dynamically. Lists can whatever you need it to be given the context, just needs to be sequential. Of course you can represent higher dimension structures by linearizing indices (x + row_size * y, etc). I think people are getting confused as most don't consider arrays to be arbitrarily dimensional without some scheme. Completely off topic but you've reminded me of this great article: https://hypirion.com/musings/understanding-persistent-vector-pt-1 https://hypirion.com/musings/understanding-persistent-vector...
- fluffy87 7y agoRust has singly linked, double linked ( in its minimal std library) and intrusive linked lists - all with APIs that guarantee a lack of memory errors and data races at compiler. I don’t know any good kernel developer that wouldn’t like those guarantees and I work in the Linux kernel professionally full time.