Add the branching arrows -<, -<<, --<, and -as-<. (resubmitted)#280
Open
malaggan wants to merge 1 commit intomagnars:masterfrom
malaggan:master
Open
Add the branching arrows -<, -<<, --<, and -as-<. (resubmitted)#280malaggan wants to merge 1 commit intomagnars:masterfrom malaggan:master
malaggan wants to merge 1 commit intomagnars:masterfrom
malaggan:master
Conversation
|
See #228. |
|
Is there any update on getting this merged? I like these macros a lot, but I have to include them in my config manually... Honestly, though, I'm not a huge fan of including the "collector" as the second argument. I think it's better handled by a normal reduction, like in the implementations given by alphapapa which match swiss-arrows. |
This file contains hidden or 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
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.
Note: I had to resubmit a new pull request instead of #279 because the previous pull request cannot be reopened.
Add parallel-threading macros inspired by https://github.com/rplevy/swiss-arrows. The general idea is the to complement the existing threading macros, which apply forms in sequence, to provide similar macros that apply forms in parallel.
For example:
(-< 3 list 1+ 1- (* 2))will produce(4 2 6), and(-< 3 + 1+ 1- (* 2))will produce12. The syntax is similar to the sequential threading macros (->, ->>, etc.) except that an extra parameter is needed: the "collector" that will take the forms as arguments. This choice was made, instead of returning a list, to allow for short-circuiting special forms likeandto be used.The use case I've personally encountered that motivated me to implement this was the need to pass the same value to several predicates and combine these predicates using
and:could be written as: