-
Notifications
You must be signed in to change notification settings - Fork 4
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
Implemented Expression Interface #5
Merged
rodrigodesalvobraz
merged 7 commits into
rodrigodesalvobraz:main
from
hsiang-wu:expression
Jun 9, 2022
Merged
Implemented Expression Interface #5
rodrigodesalvobraz
merged 7 commits into
rodrigodesalvobraz:main
from
hsiang-wu:expression
Jun 9, 2022
Conversation
This file contains 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
…t-in functions type; added a test for pattern matching
CactusWin
reviewed
Jun 8, 2022
rodrigodesalvobraz
requested changes
Jun 8, 2022
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.
Cool stuff! I think this will require a few more changes but overall it's in a good shape!
horizon-blue
reviewed
Jun 8, 2022
…ation in the project plan's comments; borrowed from strech goal the new_* function as they're handy to implement set() and replace() on abstract Expression; implemented __init__() of Basic* with what was in the interface.
Removed all |
rodrigodesalvobraz
requested changes
Jun 9, 2022
rodrigodesalvobraz
approved these changes
Jun 9, 2022
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.
In addition to the project plan, I also implemented a
replace()
method, which is similar to a common API of both Z3 and SymPy.I did not choose to implement
Variable
,Constant
andFunctionApplication
as abstract because their attributes and properties can be shared among subclasses. In that case,BasicVariable/Constant/FunctionApplication
are just empty vessels.I also included a test
pattern_match_test
for Python's new pattern matching feature which I'm not very familiar with. I found its official doc a little ambiguous so I played with it a bit.Pattern matching is used in the implementation of
__eq__()
. It can also be useful when implementing interpreter, etc.