본문 바로가기

전체 글60

Java - 자바에서 제공하는 함수형 인터페이스 자주 사용되는 함수형 인터페이스를 제공 인터페이스 메서드 설명 java.lang.Runnable void run() 리턴 값과 매개변수 둘다 없다. Supplier T get() 리턴 값만 있다. Consumer void accept(T t) 매개변수만 있다. Function R apply(T t) 하나의 매개변수와 하나의 리턴 값을 가진다. Predicate boolean test(T t) 하나의 매개변수를 가지고 booean값을 리턴한다. import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; pub.. 2017. 2. 26.
Java - 함수형 인터페이스 단 하나의 추상 메서드만 선언된 인터페이스 interface ClassName { public abstract int sum(int a, int b); } ClassName cn = new ClassName() { // 기존에는 아래와 같이 new 함수를 사용하여 객체를 생성할 때 함수를 구현한다. public int sum(int a, int b) { return a + b; } }; // 함수를 사용한다.int c = cn.sum(1, 2); //람다식 사용하기 ClassName cn2 = (a, b) -> a + b cn2.sum(1, 2); 함수형 인터페이스를 매개변수로 받기 int test(ClassName cn) { // 고차원함수 reuturn cn.sum(1, 2); } test(cn2);.. 2017. 2. 25.
Java - 람다(Lambda) 람다 함수를 간단한 식으로 표현한 걸 람다라고 한다. int sum (int a, int b) { return a + b; } // 위의 함수를 아래와 같은 식으로 변경한다. (a, b) -> a + b 함수를 람다로의 변이 과정 반환타입과 함수이름을 제거하고 {} 앞에 -> 를 추가한다. (int a, int b) -> {return a + b;} 컴파일 시 매개변수 타입을 유추할 수 있다. 그러므로 타입을 생략해도 된다. (a, b) -> {return a + b;} 'return', '{}', ';'도 생략한다. (a, b) -> a + b 그 외 람다 특징 매개변수가 하나일 때 () 생략 가능 하나 뿐인 문장이면 '{}' 생략 가능 하지만 .. 2017. 2. 24.
함수형 자바스크립트 - 7장 순수성, 불변성, 변경 정책 함수형 프로그래밍은 소프트웨어 개발의 복잡성을 최소화하는 개발 방식을 추구한다. 상태 변화를 최소화 하거나 아예 없애는 것은 복잡성을 줄일 수 있는 방법 중 하나다. 7.1 순수성 function randString(len) { var ascii = repeatedly(len, partial1(rand, 26)); return _.map(ascii, function(n) { return n.toString(36); // 책에 빠져 있음 오타...;;; }).join(''); } randString은 함수에 다른 함수를 이용해 고수준 기능을 구현한 함수이다. 하지만 이전의 다른 차이점이 있다. 'randString'은 테스트를 할 수 있는 가? 7.1.1 순수성과 테스트의 관계 describe("randS.. 2017. 2. 4.