| PasteRack.org | ||
| Paste # 82158 | ||
| 2018-02-19 12:05:12 | ||
Fork as a new paste. | ||
Paste viewed 297 times. | ||
Tweet | ||
Embed: | ||
(define (f x [y #t] #:q q #:z [z (box y)])
(list x y q z))
;; expands to core functions:
(define-values
(f7)
;; direct uses expands to direct call to here
(lambda (q1 z2 x6 y5)
(let-values (((x) x6))
(let-values (((y) y5))
(let-values (((q) q1))
(let-values (((z)
(if (#%app eq? z2 unsafe-undefined)
(#%app box y)
z2)))
(let-values () (#%app list x y q z))))))))
(define-values
(unpack8)
(lambda (given-kws given-args x6 y5)
(let-values (((q1) (#%app car given-args))
((given-kws) (#%app cdr given-kws))
((given-args) (#%app cdr given-args)))
(let-values (((z4) (#%app pair? given-kws)))
(let-values (((z2) (if z4 (#%app car given-args) unsafe-undefined)))
(#%app f7 q1 z2 x6 y5))))))
(define-values
(f9)
(#%app
lifted.1 ; = `make-keyword-procedure`, but with a name
(lambda (given-kws given-argc)
(if (if (#%app >= given-argc '3) (#%app <= given-argc '4) '#f)
(#%app subsets? '(#:q) given-kws '(#:q #:z))
'#f))
(case-lambda
((given-kws given-args x) (#%app unpack8 given-kws given-args x '#t))
((given-kws given-args x y5) (#%app unpack8 given-kws given-args x y5)))
'(#:q)
'(#:q #:z)))