<div dir="auto">I don’t want to be forced to defend my idea, because it’s not even an idea that I feel strongly about, just wanted to run it through the people here… But, if the problem is that the image assumes a lot of string protocol in symbols, you could make Symbol subclass of CharacterSequence instead of Object. And yes, I saw the bug you mentioned in your mail, but I don’t think that means the design is wrong, it’s just a bug..</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Dec 1, 2024 at 18:12 Andres Valloud via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">Hi,<br>
<br>
> I don’t think the current design is wrong, or that anything is broken… <br>
> but I’m no expert on unicode. My post was more about thinking together <br>
> about the nature of symbols.<br>
<br>
See, that's the point.  If you look at the nature of symbols, you want <br>
to see how they are represented and what they mean.  But that means you <br>
have to look at strings and characters.  And that leads you to code <br>
points and how they are interpreted.  Symbols are not just singletons.<br>
<br>
The image is currently broken as noted in the email you responded to.<br>
<br>
> Anyway, the code duplication is minimal, <br>
> and could be solved by other means (moving some methods up to <br>
> CharacterSequence, for example, although they make more sense for <br>
> symbols than for general strings).<br>
<br>
That's going to hurt because you will have to go through two barriers of <br>
"should not implement" or equivalent, each time a push up goes from <br>
symbol past string.<br>
<br>
> Also, as I suggested, making Symbol <br>
> just a subclass of object with an instance variable for the <br>
> representative string solves this “problem” without introducing more <br>
> complexity (new classes to represent sequences of codepoints separate <br>
> from sequences of characters, etc)<br>
<br>
This doesn't quite work without code duplication because the system <br>
expects instances of Symbol to behave as a string, and also as a <br>
collection.  It would seem odd to have to remember which subclasses of <br>
Object behave like Collection each time you add a convenience method.<br>
<br>
This design problem has been solved for at least 30 years, the solution <br>
pattern is generally called "composition and delegation"...<br>
<br>
Andres.<br>
-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div></div>