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

Custom iterators for lazy evaluation #34

Open
Charles-Johnson opened this issue May 30, 2021 · 0 comments
Open

Custom iterators for lazy evaluation #34

Charles-Johnson opened this issue May 30, 2021 · 0 comments
Labels
refactor code needs to be restructured to make new features easier to implement

Comments

@Charles-Johnson
Copy link
Owner

Several places in the codebase could be refactored with a custom iterator to prevent searching down too many paths than needed.

These custom iterators could generate:

  • generalisations of a given SyntaxTree
  • examples of a given SyntaxTree containing bounded variables
  • Concepts that reduce to a given Concept
  • sufficient conditions for a given Concept

The current implementation tries to generate the whole set of these up front even though only one valid path is required. The current implementation also doesn't always actually generate every possibility for example applying existential rules only considers examples that directly reduce to the desired normal form and not the other examples that recursively reduce, via rules or implication.

Therefore refactoring the project to use custom iterators will improve performance and let the features handle more complex cases.

@Charles-Johnson Charles-Johnson added the refactor code needs to be restructured to make new features easier to implement label May 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor code needs to be restructured to make new features easier to implement
Projects
None yet
Development

No branches or pull requests

1 participant