Change Symbol order to have uppercase names before lowercase ones.#1680
Open
hrueter wants to merge 1 commit intoMathics3:masterfrom
Open
Change Symbol order to have uppercase names before lowercase ones.#1680hrueter wants to merge 1 commit intoMathics3:masterfrom
hrueter wants to merge 1 commit intoMathics3:masterfrom
Conversation
3df094f to
7935c97
Compare
mmatera
reviewed
Feb 5, 2026
mathics/core/symbols.py
Outdated
| Monomial({str.swapcase(self.name): 1}), | ||
| 0, | ||
| self.name, | ||
| str.swapcase(self.name), |
Contributor
There was a problem hiding this comment.
However, this is trickier: In WMA,
In[1]:= Sort[{a,b,A,B}]
Out[1]= {a, A, b, B}
Contributor
There was a problem hiding this comment.
To reproduce it, try to concatenate name.
lowercase() with the swapcase()
Contributor
There was a problem hiding this comment.
To reproduce it, try to concatenate name.
lowercase() with the swapcase()
This is the canonical order in WL.
7935c97 to
61cbf57
Compare
mmatera
reviewed
Feb 6, 2026
| else BASIC_EXPRESSION_ELT_ORDER | ||
| ), | ||
| Monomial({self.name: 1}), | ||
| Monomial({str.lower(self.name): 1}), |
Contributor
There was a problem hiding this comment.
Suggested change
| Monomial({str.lower(self.name): 1}), | |
| Monomial({self.name.lower()+self.name.swapcase(): 1}), |
mmatera
reviewed
Feb 6, 2026
| Monomial({self.name: 1}), | ||
| Monomial({str.lower(self.name): 1}), | ||
| # The canonical in for WL is to sort by lowercase first. Hence we must swap the case. | ||
| Monomial({str.swapcase(self.name): 1}), |
Contributor
There was a problem hiding this comment.
Suggested change
| Monomial({str.swapcase(self.name): 1}), |
mmatera
reviewed
Feb 6, 2026
| Monomial({str.swapcase(self.name): 1}), | ||
| 0, | ||
| self.name, | ||
| str.lower(self.name), |
Contributor
There was a problem hiding this comment.
Suggested change
| str.lower(self.name), | |
| self.name, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Having uppercase names before lowercase ones is the canonical order in WL as defined by the sort function.
https://reference.wolfram.com/language/ref/Sort.html