Closures & Lambda
Anonymous Functions (Lambda)
kode
let square = fn(x) { return x * x }
print(square(5)) // 25
let add = fn(a, b) { return a + b }
print(add(3, 4)) // 7Closures with Captured Variables
kode
fn makeMultiplier(factor) {
return fn(x) { return x * factor }
}
let double = makeMultiplier(2)
let triple = makeMultiplier(3)
print(double(5)) // 10
print(triple(5)) // 15First-Class Functions
kode
fn applyTwice(f, x) {
return f(f(x))
}
let increment = fn(n) { return n + 1 }
print(applyTwice(increment, 5)) // 7Immediately Invoked Function Expressions (IIFE)
kode
let result = (fn() {
let privateVar = 42
return privateVar * 2
})()
print(result) // 84Higher-Order Functions
kode
fn applyOperation(a, b, op) {
return op(a, b)
}
applyOperation(5, 3, fn(x, y) { return x + y }) // 8
applyOperation(5, 3, fn(x, y) { return x * y }) // 15Closures Capturing Mutable State
kode
fn createCounter() {
let count = 0
return fn() {
count = count + 1
return count
}
}
let counter = createCounter()
print(counter()) // 1
print(counter()) // 2
print(counter()) // 3