Skip to content
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

Implement rule priority groups to tree_morph #586

Merged
merged 1 commit into from
Jan 17, 2025

Conversation

lixitrixi
Copy link
Contributor

No description provided.

@lixitrixi lixitrixi marked this pull request as draft January 13, 2025 18:03
@lixitrixi lixitrixi self-assigned this Jan 13, 2025
@lixitrixi lixitrixi marked this pull request as ready for review January 16, 2025 20:51
@lixitrixi lixitrixi force-pushed the rule-groups branch 5 times, most recently from 518c535 to aaf3d08 Compare January 16, 2025 21:29
the main engine has been updated to make use of Uniplate's wonderful "contexts" method to abstract over and optimise the actual tree traversal.

bump uniplate version

update documentation
@lixitrixi
Copy link
Contributor Author

This is good for now IMO.

I'll make a separate PR where I improve the documentation and naming. One thing Nik mentioned is that I use "transform" and "reduce" interchangeably, which is confusing! People in the VIP also mentioned that reduce implies "making smaller", which isn't necessarily true.

Apparently "morph" means "undergo or cause to undergo a gradual process of transformation." and has similar meaning in computer graphics as "change smoothly from one image to another by small gradual steps using computer animation techniques." which I think is perfect! The below conventions might be good:

  • morph: an operation which applies multiple smaller changes gradually, like the 3 main functions
  • transform: a function which possibly changes a given node into another, along with side effects
  • rule: another word for a "transform" implemented by the user. These are usually simple, matching against a single specific form.
  • rule group: combines multiple rules into one. Along with a selector function, this makes a transform!

@lixitrixi lixitrixi mentioned this pull request Jan 17, 2025
@ozgurakgun ozgurakgun merged commit fb9434b into conjure-cp:main Jan 17, 2025
14 checks passed
@lixitrixi lixitrixi deleted the rule-groups branch January 17, 2025 23:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants