函数式编程
main(){
// First-Class Functions
let applyFunc = {
val: Int64, fn: (Int64) -> Int64 => fn(val)
}
// Higher-Order Functions
let double = {x: Int64 => x * 2}
let square = {x: Int64 => x * x}
// Function Composition
let compse = {
f: (Int64) -> Int64, g: (Int64) -> Int64 => {
x: Int64 => g(f(x))
}
}
let doubleAfterSquare = square ~> double // compse(square, double)
applyFunc(5) {it => it + 3} |> println
doubleAfterSquare(3) |> println
}