diff --git a/qi-lib/flow/core/compiler.rkt b/qi-lib/flow/core/compiler.rkt index 85edd46c9..0c98f91b2 100644 --- a/qi-lib/flow/core/compiler.rkt +++ b/qi-lib/flow/core/compiler.rkt @@ -405,7 +405,10 @@ the DSL. [_:id #'filter-values] [(_ onex:clause) - #'(curry filter-values (qi0->racket onex))])) + #'(λ args + (apply filter-values + (qi0->racket onex) + args))])) (define (fold-left-parser stx) (syntax-parse stx diff --git a/qi-test/tests/flow.rkt b/qi-test/tests/flow.rkt index a1028004f..f7e765380 100644 --- a/qi-test/tests/flow.rkt +++ b/qi-test/tests/flow.rkt @@ -472,15 +472,15 @@ (filter p))) odd?) (list 1 3 5 7 9)) + (test-equal? "binding a value used in a floe position" + ((☯ (~> (as p) + (range 10) + △ + (pass p) + ▽)) + odd?) + (list 1 3 5 7 9)) ;; See issue #181 - ;; (test-equal? "binding a value used in a floe position" - ;; ((☯ (~> (as p) - ;; (range 10) - ;; △ - ;; (pass p) - ;; ▽)) - ;; odd?) - ;; (list 1 3 5 7 9)) ;; (test-exn "using a qi binding as a primitive flow" ;; exn:fail:contract:arity? ;; (thunk ((☯ (~> (as p) p)) odd?)))