You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Arguments are by default supplied in the leading positions. Employing the right-threading operator causes arguments to be supplied in the tail position, but this doesn't propagate to nested forms, requiring a fresh use of right-threading within those nested forms.
At the moment, right-threading is implemented by setting a syntax property on the contained clauses in (~>> clause ...). This happens only in the expansion rule for the right-threading operator, and as a result, any nested clauses don't inherit this property since other expansion rules aren't aware of it.
Replacing all of the rewrite rules to explicitly propagate syntax properties via datum->syntax instead of a simple #' would possibly work, but it seems gratuitous. Maybe there's an easier way.
Workaround:
Explicitly indicate right-threading within the nested form:
Arguments are by default supplied in the leading positions. Employing the right-threading operator causes arguments to be supplied in the tail position, but this doesn't propagate to nested forms, requiring a fresh use of right-threading within those nested forms.
Example:
as expected, but
rather than the expected "ab", "ac"
Implementation Considerations:
At the moment, right-threading is implemented by setting a syntax property on the contained clauses in
(~>> clause ...)
. This happens only in the expansion rule for the right-threading operator, and as a result, any nested clauses don't inherit this property since other expansion rules aren't aware of it.Replacing all of the rewrite rules to explicitly propagate syntax properties via
datum->syntax
instead of a simple#'
would possibly work, but it seems gratuitous. Maybe there's an easier way.Workaround:
Explicitly indicate right-threading within the nested form:
or use a template:
The text was updated successfully, but these errors were encountered: