함수형
-
람다와 스트림 - 컬렉션과 함수형 인터페이스백엔드/자바 2021. 9. 1. 19:38
JDK 1.8부터는 함수형 인터페이스가 추가됐고, 그와 더불어 컬렉션 프레임웍을 편하게 사용할 수 있도록 컬렉션의 인터페이스에 디폴트 메서드가 추가됐다. 그 중 일부는 함수형 인터페이스를 사용하는데 이번 파트에서 그러한 메서드들에 대해 설명한다. 인터페이스 메서드 설명 Collection boolean removeIf(Predicate filter) 조건에 맞는 요소 삭제 List void replaceAll(UnaryOperator operator) 모든 요소를 변환하여 대체 Iterable void forEach(Consumer action) 모든 요소에 작업 action을 수행 Map V compute(K key, BiFunction f) 지정된 키의 값에 작업 f를 수행 V computeIfAbs..
-
람다와 스트림 - 함수의 결합백엔드/자바 2021. 8. 25. 19:57
수학에서 두 개의 함수를 결합할 수 있는 것처럼 자바에선 두 람다식을 결합할 수 있도록 하고 있다. 그리고 당연히 미리 준비된 메서드만 가져다 쓰면 된다. andThen() 예를 들어 위와 같은 코드가 있다고 가정해보자. 참조변수 ft1은 10진수를 넣으면 2진수로 반환하는 람다식을 저장하고 있다. 반면 참조변수 ft2는 2진수를 넣으면 10진수로 반환하는 람다식을 저장하고 있다. 만약 이 두 개의 함수를 합치고 싶다면 어떻게 해야할까? 그럴땐 andThen을 쓰면 된다. 위 코드와 같이 두 개의 함수를 andThen()메서드로 합쳐주면 두 함수는 하나로 합성된다. 이때 데이터의 흐름은 "ft1 (10진수 -> 2진수) => ft2 (2진수 -> 10진수)"로 된다. 그래서 정수 10을 입력하면 정수 1..
-
람다와 스트림 - java.util.function - part2백엔드/자바 2021. 8. 25. 14:44
람다와 스트림 - java.util.function - part1 이전 람다 파트에선 람다란 무엇인지, 람다를 사용하기 위한 방법, 함수형 인터페이스 등에 대해서 배웠다. 다시 한번 간단하게 복습하면 다음과 같다. - 람다식은 익명 객체를 간략하게 만든 표 sgcomputer.tistory.com 이전 파트에선 함수형 인터페이스를 쉽게 사용할 수 있게 만든 패키지 java.util.function에 대해 알아봤다. 이번 파트에서는 추가적으로 유용하게 쓸 수 있는 함수형 인터페이스에 대해서 알아보자. 매개변수가 두 개인 함수형 인터페이스 함수형 인터페이스 메서드 설명 BiConsumer void accept ( T t, U u ) 두 개의 매개 변수만 있고, 반환값이 없음 BiPredica..
-
고차함수(Higher-Order Function)에 대해서프론트엔드/JavaScript 2020. 9. 22. 00:15
함수형 프로그래밍(Functional Programming)이란? 함수형 프로그래밍은 자료의 처리를 함수의 계산으로서 취급하는 프로그래밍의 한 형태다. 기존의 프로그래밍이 직접 손으로 짜거나 불완전한 구조였다면 함수 프로그래밍은 함수를 적극 활용하여 외부 입력에 따라 결과가 달라지거나 하는 등을 지양하는 프로그래밍이다. 이때 사용되어야 하는 함수는 함수의 결과가 프로그램의 상태를 바꾸지 않고 함수의 결과값은 오로지 함수에게 주어진 입력된 인수에만 의존해야 한다. 또한 결과값은 항상 일정해야 한다. 고차 함수(Higher-Order Function)란? 함수형 프로그래밍을 하다보면 그 중 하나인 고차 함수를 쓰게 된다. 그리고 이 고차 함수의 조건은 다음과 같다. ● 하나 이상의 함수를 인수로 취할 수 있..