News for hackers. Stuff that matters.
Re:Functional Programming – How and Why by Jtsummers on Monday January 02, 2023 @11:36AM (#34219879)
I wrote that other comment just before dozing off for the night because I was surprised no one else had replied yet. But to expand on it:

In Eiffel (which is an object oriented language), methods on objects are separated into twokind: commands and queries. This is also known as the "Command-Query Separation" principle. The idea is that commands are the ones causing changes to the systems and queries only inform you about the system. `a_set.add(item)` changes the set, while `a_set.has(item)` tells you about the set but makes no changes to it. It's very useful, and very common. I mean, I'd hope that `some_collection.Size()` doesn't actually change its size, that's not what it exists to do.

https://en.wikipedia.org/wiki/Command–query_separation

Re:Functional Programming – How and Why by kaba0 on Tuesday January 03, 2023 @10:20AM (#34232461)
Thanks, I wasn’t familiar with the name of this principle!

Though I feel these definitions of OOP are closing on the Actor model, so exact definitions are not really possible to give here.

Re:Functional Programming – How and Why by shadowgovt on Tuesday January 03, 2023 @03:41PM (#34237703)
Sometimes, depending on the nature of the implementation, Size() might do the work to compute the size, cache the result, and clear a dirty flag on the cache.

Not sure if that matters.