17 lines
411 B
Common Lisp
17 lines
411 B
Common Lisp
;; By decreasing order of performance
|
||
;; 1) user definition : lambda and closure
|
||
|
||
(define (ucompose f g ) (lambda (x) ( f ( g x))))
|
||
(ucompose sin cos)
|
||
→ (🔒 λ (_x) (f (g _x)))
|
||
|
||
;; 2) built-in compose : lambda
|
||
|
||
(compose sin cos)
|
||
→ (λ (_#:g1002) (#apply-compose (#list #cos #sin) _#:g1002))
|
||
|
||
;; 3) compiled composition
|
||
|
||
(define (sincos x) (sin (cos x)))
|
||
sincos → (λ (_x) (⭕️ #sin (#cos _x)))
|