[v.0.0] 익명 함수란? (anonymous function)

1. 익명 함수란? (anonymous function)

이름이 없는 함수

보통 우리가 쓰는 함수는 이름이 있는 함수입니다

fun sayHello() {
    println("Hello")
}

하지만 어떤 함수는 이름 없이도 쓸 수 있습니다. 이것이 익명 함수예요.

fun() {
    println("Hello")
}

이렇게 쓰면 이름이 없기 때문에 이 자체로는 실행이 안 되고, 변수에 담아서 써야 합니다

val greet = fun() { println("Hello") }
greet()  // Hello

2. 그럼 람다 표현식은 뭐가 다르냐?

람다 표현식은 익명 함수를 더 간결하게 쓰는 문법이에요.

val greet = { println("Hello") }  // 람다 표현식
greet()  // Hello

즉, fun() {} 을 {}로 바꾼 것!

3. “함수를 값처럼 다룬다"는 무슨 뜻?

이 말이 중요한데요. 함수도 변수에 넣고, 다른 함수에 넘기고, 리턴할 수도 있다는 뜻입니다.

예를 들어

val add = { a: Int, b: Int -> a + b }  // 함수처럼 생긴 값을 변수에 저장

fun calculate(x: Int, y: Int, op: (Int, Int) -> Int): Int {
    return op(x, y)  // 함수(값)를 받아서 실행
}

val result = calculate(3, 5, add)  // 함수 자체를 넘김!
println(result) // 8

여기서 add는 함수지만 값처럼 변수에 담겨 다뤄졌고

calculate는 함수 하나를 인자로 받아서 실행했죠

이게 바로 “함수를 값처럼 다룰 수 있다” 는 뜻이에요. 함수를 변수처럼 사용 → 함수형 프로그래밍의 핵심입니다.

Built with Hugo
Theme Stack designed by Jimmy