함수형프로그래밍5 [JAVA] Stream의 map과 flatMap 차이 [JAVA] Stream의 map과 flatMap 차이 Java Stream API를 사용하다 보면 자주 마주치게 되는 map()과 flatMap() 메서드.얼핏 비슷해 보이는 이 두 메서드의 차이점을 정확히 이해하기 위한 글입니다.. map() 메서드 이해하기map()은 스트림의 각 요소를 변환하여 새로운 요소로 매핑하는 중간 연산입니다. 1:1 매핑이라고 생각하면 됩니다. 기본적인 map() 사용 예제List names = Arrays.asList("john", "jane", "mike");// 모든 이름을 대문자로 변환List upperNames = names.stream() .map(String::toUpperCase) .collect(Collectors.toList());System.. 2024. 11. 1. [kotlin] 인라인 함수 (Inline Functions) 인라인 함수 (Inline Functions)고차 함수를 사용하면 런타임 시 일정한 페널티가 발생합니다. 각 함수는 객체이며, 클로저를 캡처합니다. 이는 메모리 할당과 가상 호출로 인한 런타임 오버헤드를 초래합니다. 하지만 많은 경우에 람다 표현식을 인라인화하여 이러한 오버헤드를 제거할 수 있습니다. 인라인 함수의 기본 (Basics of Inline Functions)함수를 인라인화하려면 inline 수정자를 사용합니다:inline fun lock(lock: Lock, body: () -> T): T { ... }이렇게 하면 컴파일러는 함수 호출 시점에 함수의 본문을 직접 삽입합니다. 이는 함수 자체와 전달된 람다 모두에 영향을 미칩니다. noinline 수정자 (noinline Modifier)일.. 2024. 8. 19. [kotlin] 고차 함수와 람다 (Higher-order Functions and Lambdas) kotlin의 고차 함수와 람다 (Higher-order Functions and Lambdas)코틀린(Kotlin)은 함수형 프로그래밍의 강력한 기능을 제공합니다. 이 글에서는 고차 함수와 람다 표현식에 대해 자세히 알아보겠습니다. 이러한 개념들은 코드를 더 간결하고 표현력 있게 만들어 줍니다. 고차 함수 (Higher-order Functions)고차 함수는 다른 함수를 매개변수로 받거나 함수를 반환하는 함수를 말합니다. 코틀린에서는 함수가 일급 객체이므로 변수에 저장하거나 다른 함수에 전달할 수 있습니다.예를 들어, 컬렉션의 fold 함수는 고차 함수의 좋은 예시입니다:fun Collection.fold( initial: R, combine: (acc: R, nextElement: .. 2024. 8. 18. [Kotlin] 타입 별칭(Type Aliases) Kotlin의 타입 별칭(Type Aliases)Kotlin의 타입 별칭(Type Aliases)은 기존 타입에 대한 대체 이름을 제공하는 강력한 기능입니다.이 가이드에서는 타입 별칭의 다양한 측면을 상세히 살펴보겠습니다. 타입 별칭 기본 (Type Aliases Basics)타입 별칭은 긴 타입 이름을 더 짧고 의미 있는 이름으로 대체할 수 있게 해줍니다. 이는 코드의 가독성을 크게 향상시킬 수 있습니다. 컬렉션 타입 단축 (Shortening Collection Types)긴 제네릭 타입, 특히 컬렉션 타입을 단축하는 데 매우 유용합니다:typealias NodeSet = Settypealias FileTable = MutableMap> 이 예제에서 NodeSet은 Set의 별칭이 되며, F.. 2024. 8. 18. 이전 1 2 다음