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.




( ( compose
  =   f g
    . !arg:(?f.?g)&'(.($f)$(($g)$!arg))
  )
&     compose
    $ ( (=.flt$(!arg,2))
      . compose$((=.!arg*5/9).(=.!arg+-32))
      )
  : (=?FahrenheitToCelsius)
& ( FahrenheitToCelsiusExample
  =   deg
    .   chu$(x2d$b0):?deg
      &   out
        $ ( str
          $ (!arg " " !deg "F in " !deg "C = " FahrenheitToCelsius$!arg)
          )
  )
& FahrenheitToCelsiusExample$0
& FahrenheitToCelsiusExample$100
)