So... what is the problem again?
(a lot of the other stuff in the article is valid though)
So... what is the problem again?
(a lot of the other stuff in the article is valid though)
There's also value in having things like this standardized. If its a common idiom, its worth including in the standard to allow people to use it without having to worry about what utility libraries they're including.
Why should the first parameter be privileged? Why isn't it possible to add a new method to, say, Array which is scoped to your lexical context?
Even classic procedural programming didn't have this problem (as long as you don't need access to private data): Just add a function that does what you want and it'll look and behave just as the other functions on Array.
EDIT: Maybe the focus shouldn't be on adding a few convenience methods here and there, but rather on making the language itself more "pliable" or "growable" as Steele would probably say.
Regarding "dynamically typed": CLOS[1] got this right. Common Lisp is dynamically typed. In short: Dynamic/static typing has very little to do with this.
last(array) feels to much like C style OOP.
array::last()
would mean same as last.call(array)
that means `last` can just be a regular variable in scope