## Note: this wiki is now retired and will no longer be updated!

The static final versions of the pages are left as a convenience for readers. Note that meta-pages such as "discussion," "history," etc., will not work.

# SICP exercise 1.42

## Problem

Let f and g be two one-argument functions. The composition f after g is defined to be the function $x \mapsto f(g(x))$. Define a procedure compose that implements composition. For example, if inc is a procedure that adds 1 to its argument,

`((compose square inc) 6)`

evaluates to 49.

## Solution

The solution is straightforward. It looks very much like its mathematical analogue:

```(define (compose f g)
(lambda (x) (f (g x))))```

Let's test:

```(define (square x) (* x x))

(define (inc x) (+ x 1))

((compose square inc) 6)```

Output:

```49
```