Login  Register

Re: Comparison for SequencableCollection

Posted by Peter Uhnak on Aug 02, 2015; 4:02pm
URL: https://forum.world.st/Comparison-for-SequencableCollection-tp4840704p4840722.html

(a b c) = (b a c) if a = b 
(a b c) < (b a c) if a < b 
The semantics are well defined. 

Since you mentioned JavaScript, you should know that you can't compare arrays with ==, because it does object comparison.

No. Sorted collection maintains order of its elements, and I'm talking 
about order on [the set of] sequencable collections 
 
This will make sense only if the objects have overriden their #=.
Which also means that it is not very useful to use #<, because you can't define order without overriding #=.

Compare it to sorting a collection, where you can either do #sorted, which will do "a <= b" by default, but you can still do #sorted: and specify the sort order, dtto with PluggableDictionary etc.
So if anything, it would make more sense to be able to block-based testing (without relying on #<), because more often then not you will have your values wrapped in some (bigger) objects.

And finally "Because in almost every programming language..." is not an argument.
You could argue that "1 + 2 * 3" should return "7", because that's how every language does it and that's how mathematicians did it for thousands of years. And yet Smalltalk happily returns "9" and yet it makes sense, and some could argue that it's even better.

Peter

On Sun, Aug 2, 2015 at 4:59 PM, Alexandre Bergel <[hidden email]> wrote:
> I'd say it is questonable if SequenceableCollections should be comparable by default.

+1

Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.