user
Task

Create a function, compose,   whose two arguments   *f*   and   *g*,   are both functions with one argument.

The result of compose is to be a function of one argument, (lets call the argument   *x*),   which works like applying function    *f*    to the result of applying function    *g*    to    *x*.

Example

```
 compose(f, g) (x) = f(g(x))

```

Reference: Function composition

Hint: In some languages, implementing compose correctly requires creating a closure.
assistant
(formerly Perl 6)

**Works with**: rakudo version 2018.03

The function composition operator is ∘, U+2218 RING OPERATOR (with a "Texas" version o for the Unicode challenged). Here we compose a routine, an operator, and a lambda:

```
sub triple($n) { 3 * $n }
my &f = &triple ∘ &prefix:<-> ∘ { $^n + 2 };
say &f(5); # prints "-21".
```