What is the logic here? Is l made into a function that holds state and returns each element in turn (like an iterator function)? Because I would've expected:
I don't like the Arc language because it's dynamically typed and thus inherently unsafe (see other threads for this sort of discussion.)
But I like this particular feature. If you think about it, an array is a mathematical function, or map, from indices to values. So it makes sense to be able to apply it to indices to get the respective values.
I think the list '(0 1 2) is behaving like the function — in CL syntax, sorry, I don't know Arc — (lambda (x) (elt '(0 1 2) x)). That is, the list is being treated as a sequence, which is a function from each index to the corresponding element.