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.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Macro for entering permutations in cycle notation #1307
Macro for entering permutations in cycle notation #1307
Changes from 20 commits
dcbc9c3
fbda880
a22a3ce
c10c927
87116bd
b495eb7
1dec78c
02680e9
b480ac3
c6204ce
082d0dc
cc47761
fbe66e9
eae2be0
94b4009
0742906
9c69716
774874c
6cd658b
2e5a6cd
9cbdcd3
bd16a6f
61eb6f9
fe5d38e
9628dce
946a9af
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This calls
symmetric_group
again and again, which isn't great, as we create a new group object each time. This could be improved by usinglet
block; but I don't want to complicate things even further, so I suggest we first iron out everything else and get this merged, then we can worry about fine tuning.Just for the record, here is what I'd do: I'd only collect the
res
values here:Then, the final
return
of this macro could look something like this:Note: normally we'd have to worry that
g
andpi
could clash with symbols defined by the programmer in the surrounding code, and referenced in the permutation expression. This is where theesc
function comes into play: we applied it to the expressions we got from the user, but not to the outer expression above. This leads to the Julia macro hygiene functionality kicking in, which determines thatg
andpi
(unlikesymmetric_group
andcperm
) are not known variables, and replaces them by special generated names. You can check the effect of this viamacroexpand
:There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could just let
ores
start out as an empty vector and then dopush!(ores, ...)
, then you don't needi
.