Matus Goljer
Matus Goljer
Yea, this already exists in dash. The problem is that it doesn't work well without lexical scope (the lambda there can break quite easily). See `-grade-up` or `-grade-down`
Consider for example ``` (let ((comparator (lambda (a b) (let (comparator) (funcall comparator a b))))) (sort '(1 2 3 4) comparator)) ```
Well, that's a bit silly example... I'll try to come up with something better :D I'm not sure now it showcases what I wanted.
Can you open a PR with your implementation so we can review it?
Followed in the PR.
I don't understand this example (partitions (list #'primep #'evenp) (iota 10)) => ((2 3 5 7) (0 4 6 8)), (1 9) Your first example seems to follow a similar...
We should put the list as last argument, that's the dash convention in 95% of the cases. The reason being that you can then use threading macros more consistently.
Can we open a pull request? It's easier to review code that way.
I like that we get the non-matched items, since this can then also work as a `-reject` alternative by using the last item of the list. Or we can have...
Well, the destructuring wouldn't really be all that different because it works recursively: ```elisp ;; the API proposed by alphapapa (-let [((strings keywords) rest) (-separate-multi '(#'stringp #'keywordp) list)] ... )...