14 lines
376 B
CoffeeScript
14 lines
376 B
CoffeeScript
# Functions as values of a variable
|
||
cube = (x) -> Math.pow x, 3
|
||
cuberoot = (x) -> Math.pow x, 1 / 3
|
||
|
||
# Higher order function
|
||
compose = (f, g) -> (x) -> f g(x)
|
||
|
||
# Storing functions in a array
|
||
fun = [Math.sin, Math.cos, cube]
|
||
inv = [Math.asin, Math.acos, cuberoot]
|
||
|
||
# Applying the composition to 0.5
|
||
console.log compose(inv[i], fun[i])(0.5) for i in [0..2]
|