From 40eeb1745b1ec3362d30277b96ee7ea1c9d012c3 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Fri, 18 Dec 2020 11:43:17 +0100 Subject: [PATCH] Add compose-n. --- typed-compose.rkt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/typed-compose.rkt b/typed-compose.rkt index a5857a5..67bac2a 100644 --- a/typed-compose.rkt +++ b/typed-compose.rkt @@ -22,3 +22,12 @@ (module+ test (require typed/rackunit)) + +(: compose-n (All (a) (-> (-> a a) * (-> a a)))) +(define (compose-n . funcs) + (λ (x) + (for/foldr ([x x]) ([f funcs]) + (f x)))) + +(module+ test + (check-equal? ((compose-n add1 add1 add1) 3) 6))