본문 바로가기

lambda

Kotlin - 고차함수와 람다식 (Higher-order functions and lambdas) https://kotlinlang.org/docs/lambdas.html 코틀린 함수는 일급 함수이기 때문에 함수 내부에 변수나 데이터 구조를 저장할 수 있고, 함수를 인자로 전달하거나 다른 고차 함수를 통해 반환 값이 될 수 있다. 람다 표현식을 통해 이를 편하게 사용 할 수 있다. 고차함수 (Higher-order functions) 고차 함수는 함수를 리턴하거나 함수를 파라미터로 받는 함수를 말한다. 좋은 예로 함수형 프로그래밍에서 주로 사용하는 fold 함수가 있다. 이 함수는 초기값과 결합 함수를 파라미터로 받아서 모든 원소에 대해 결합함수를 수행한다. fun Collection.fold( initial: R, combine: (acc: R, nextElement: T) -> R // 함수를 파.. 더보기
Java 람다(Lambda) 표현식, Functional Interface 에 대한 조언 https://www.baeldung.com/java-8-lambda-expressions-tips Lambda Expressions and Functional Interfaces: Tips and Best Practices | Baeldung Tips and best practices on using Java 8 lambdas and functional interfaces. www.baeldung.com 1. 표준 함수형 인터페이스(Functional Interfaces) 위주로 사용하라 함수형 인터페이스는 java.util.function 패키지에 모여 있고, 거의 대부분의 람다 표현식이나 페소드 참조에 사용할 수 있다. 대표적인 함수형 인터페이스로는 아래와 같은 타입들이 있다. 파라미터 없이 어떤 .. 더보기
Java8 이후 람다를 이용하여 Collection 정렬하기 (정렬을 깔끔하게 작성하는 법) 원문 : https://www.baeldung.com/java-8-sort-lambda 우선 아래와 같은 class가 있다고 했을때 public class Human { private String name; private int age; public String getName() { return name; } public int getAge() { return age; } public Human(String name, int age) { this.name = name; this.age = age; } } Java8 이전에는 아래 코드와 같이 Comparator를 구현하여 정렬에 사용했다. void givenPreLambda_whenSortingEntitiesByName_thenCorrectlySorted.. 더보기
Python - lambda() 공식 문서 : http://docs.python.org/2/reference/expressions.html#lambda lambda는 이름없는 한줄짜리 함수를 만들때 사용된다. lambda arguments : expression 이런식으로 사용되는데 def XXX(arguments): return expression 과 같은 형태이다. 사용 예 get_max_and_double = lambda a, b: max(a, b) * 2 #get_max_and_double 이라는 변수에는 max(a, b) * 2 값을 반환하는 기능이 저장되었다. get_max_and_double(2, 3) #6 숫자2개를 입력받아서 둘중 큰수의 2배를 하는 함수를 만들었다. python에서는 함수 자체도 변수에 담을 수 있기 .. 더보기