logoalt Hacker News

hahahahhaahtoday at 1:44 AM2 repliesview on HN

Arrays are objects (allocated memory and metadata if you will). The function is what takes the array and an int and returns an item.


Replies

hekkletoday at 1:55 AM

In Object Oriented programming, yes, arrays are objects and the functions are a property of another object that can perform instructions on the data of the Array Object.

Similarly in Lisp, (a list-oriented language) both functions and arrays are lists.

This article however is discussing Haskel, a Functional Language, which means they are both functions.

show 1 reply
repsilattoday at 3:09 AM

Yeah I guess a c++ programmer might say `std::array::operator[]` is a function (or method, whatever), just like `std::array::size` is. And that identifying the array with just one of those functions (or even the collection of all methods offered) is to miss the point -- not just contiguous indices, but contiguous storage. A red-black tree with added constraints is not an array.

TFA does allude to this. An "array indexing function" that just met the API could be implemented as an if-else chain, and would not be satisfactory.