final Array<Integer> a = array(1, 2, 3);
final Array<Integer> b = a.map(i -> i + 42);
arrayShow(intShow).println(b); // {43,44,45}
// combine into a single step
arrayShow(intShow).println(array(1, 2, 3).map(i -> i + 42));
출처
: http://blog.acidraincity.com/2015/02/java-google-guava-functional-programming.html
구글 Guava 라이브러리를 이용해 함수형 프로그래밍을 시도해 보려고 작성한 예제 코드입니다.
// Arrays 클래스의 public static <t> List<t> asList(T... a); 메소드를 이용해 단일 원소 리스트를 { { { { { |
안드로이드 스튜디오에서 Guava 라이브러리를 사용하려면 gradle 설정에 다음을 추가하면 됩니다.
compile 'com.google.guava:guava:18.0' |
그리고 proguard 설정에는 다음 내용을 추가해 주세요.
-dontwarn sun.misc.Unsafe |
functional programming에 대한 개념 설명은 아래 URL을 참고하세요.
http://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98%ED%98%95_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
Java에서의 functional programming에 대한 또다른 접근으로는 그리고 이런 것도 있습니다.
http://www.functionaljava.org
OverviewFunctional Java is an open source library facilitating functional programming in Java. The library implements numerous basic and advanced programming abstractions that assist composition oriented development. Functional Java also serves as a platform for learning functional programming concepts by introducing these concepts using a familiar language. The library is intended for use in production applications and is thoroughly tested using the technique of automated specification-based testing with ScalaCheck. Functional Java is compiled with Java 8 targeting Java 7 bytecode. The use of lambdas within the project are backported with the Retro Lambda library, supporting Java versions 5 to 8 and beyond. FeaturesFunctional Java provides abstractions for the following types:
See the features page for a brief description of each of these types. ExampleRead the quick start guide for how to add FunctionalJava to your project and get started with a full example. Functional Java includes numerous usage examples, this example maps a function over an array, adding 42 to each element (imports omitted). |
'IT_Programming > Dev Libs & Framework' 카테고리의 다른 글
[Spring] Spring 3.1 + EhCache 를 이용하여 캐시 사용하기 (0) | 2015.07.09 |
---|---|
Rx (Reactive Extensions) (0) | 2015.06.29 |
Guava를 써야하는 5가지 이유 (0) | 2015.02.23 |
NLP 자연어처리 / 형태소분석 (0) | 2015.01.14 |
Joda-Time을 활용한 date format 처리 (0) | 2014.07.16 |