On Monday, 28 January 2013 at 18:04:22 UTC, Dicebot wrote:
T changes its inner encapsulated states. Period. It is no different that properties that calculate result on the fly, like range.empty (which is good property usage).

Array.length allocates. Takes from some global resources, takes some considerable time, calls some global allocating function.

For me it is a crucial difference that pushes symbol to the world of functions.

The question "what is or should be a property?" is a question of semantics. I don't see what performance or those implementation details you mentioned have to do with semantics.

What if our container type wasn't a dynamic array? Let's say it's a pseudo container that pretends to be a vector of consecutive int values, but in reality it just has two integers which denote the beginning and the end of the range. Now changing the length property of that container takes constant time (it just sets the end value anew).

Reply via email to