Skip to content

Commit

Permalink
remove unused arity default in loom-compose
Browse files Browse the repository at this point in the history
  • Loading branch information
countvajhula committed Dec 20, 2023
1 parent 5e7d9fa commit c69c478
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions qi-lib/flow/core/impl.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -42,22 +42,21 @@

;; we use a lambda to capture the arguments at runtime
;; since they aren't available at compile time
(define (loom-compose f g [n #f])
(let ([n (or n (procedure-arity f))])
(λ args
(let ([num-args (length args)])
(if (< num-args n)
(if (= 0 num-args)
(values)
(error 'group (~a "Can't select "
n
" arguments from "
args)))
(let ([sargs (take args n)]
[rargs (drop args n)])
(apply values
(append (values->list (apply f sargs))
(values->list (apply g rargs))))))))))
(define (loom-compose f g n)
(λ args
(let ([num-args (length args)])
(if (< num-args n)
(if (= 0 num-args)
(values)
(error 'group (~a "Can't select "
n
" arguments from "
args)))
(let ([sargs (take args n)]
[rargs (drop args n)])
(apply values
(append (values->list (apply f sargs))
(values->list (apply g rargs)))))))))

(define (parity-xor . args) (and (foldl xor #f args) #t))

Expand Down

0 comments on commit c69c478

Please sign in to comment.