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

Closure sequences #22

Merged
merged 12 commits into from
Feb 16, 2024
Merged

Closure sequences #22

merged 12 commits into from
Feb 16, 2024

Conversation

aredington
Copy link
Collaborator

Allows closing over any named node in the mapped fn for sequence type nodes.

  • Change the definition of the fn for a sequence from being a ifn? value at the :nodely.data/fn key to being a node embedded at the :nodely.data/process-node key of the sequence node.
  • Obtaining the fn means eval the process-node and then apply the resulting fn from evaling.
  • Tests in all engines asserting support for closing over nodes in sequence fns.

- With Joao Luigi
- Have to redefine prepare-inputs because LazyEnvs are not
  clojure.lang.Associative or java.util.Maps
- Do not like the impl of `eval-sequence` or `applicative-sequence-fn`
  but they work and tests pass. Time to make a checkpoint.
Looks cleaner to me at least!
Just use a leaf. With João and Sophia

We want to continue evaluating how we model the sequence node's data
to minimize changes, and, minimize scope of what needs to be handled
in engines bespokely.
- Fixed fns are a value node.
- Fns that need to close over the environment are leaf nodes.
- Maybe we figure out when branch nodes are appropriate?
- ONLY needed to update impl and syntax test. Strong validation of the
  abstraction that all other tests pass without updates!
@aredington aredington requested a review from sovelten February 16, 2024 16:52
:tags #{node-tag}})
(s/defschema Sequence #::{:type (s/eq :sequence)
:input s/Keyword
:process-node (s/recursive #'Node)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(s/recursive #'Leaf)?

@aredington aredington merged commit 110b81d into main Feb 16, 2024
@aredington aredington deleted the closure-sequences branch February 16, 2024 17:57
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