FunctionalJava article (#2586)
* Update pom.xml with functionalJava dependencies * Add functionalJava classes * update README.md
This commit is contained in:
		
							parent
							
								
									cc304b068b
								
							
						
					
					
						commit
						35ac22c947
					
				| @ -31,7 +31,7 @@ | ||||
| - [Guide to Apache Commons CircularFifoQueue](http://www.baeldung.com/commons-circular-fifo-queue) | ||||
| - [Quick Guide to RSS with Rome](http://www.baeldung.com/rome-rss) | ||||
| - [Introduction to NoException](http://www.baeldung.com/no-exception) | ||||
| 
 | ||||
| - [Introduction to FunctionalJava](http://www.baeldung.com/functional-java) | ||||
| 
 | ||||
| The libraries module contains examples related to small libraries that are relatively easy to use and does not require any separate module of its own. | ||||
| 
 | ||||
|  | ||||
| @ -554,6 +554,26 @@ | ||||
|             <artifactId>protonpack</artifactId> | ||||
|             <version>${protonpack.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
| 	    <groupId>org.functionaljava</groupId> | ||||
| 	    <artifactId>functionaljava</artifactId> | ||||
| 	    <version>4.7</version> | ||||
| 	</dependency> | ||||
| 	<dependency> | ||||
| 	    <groupId>org.functionaljava</groupId> | ||||
| 	    <artifactId>functionaljava-java8</artifactId> | ||||
| 	    <version>4.7</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
| 	    <groupId>org.functionaljava</groupId> | ||||
| 	    <artifactId>functionaljava-quickcheck</artifactId> | ||||
| 	    <version>4.7</version> | ||||
| 	</dependency> | ||||
| 	<dependency> | ||||
| 	    <groupId>org.functionaljava</groupId> | ||||
| 	    <artifactId>functionaljava-java-core</artifactId> | ||||
| 	    <version>4.7</version> | ||||
|         </dependency> | ||||
|     </dependencies> | ||||
|     <repositories> | ||||
|         <repository> | ||||
|  | ||||
| @ -0,0 +1,47 @@ | ||||
| package com.baeldung.fj; | ||||
| 
 | ||||
| import fj.F; | ||||
| import fj.F1Functions; | ||||
| import fj.Unit; | ||||
| import fj.data.IO; | ||||
| import fj.data.IOFunctions; | ||||
| 
 | ||||
| public class FunctionalJavaIOMain { | ||||
|      | ||||
|     public static IO<Unit> printLetters(final String s) { | ||||
|         return () -> { | ||||
|             for (int i = 0; i < s.length(); i++) { | ||||
|                 System.out.println(s.charAt(i)); | ||||
|             } | ||||
|             return Unit.unit(); | ||||
|         }; | ||||
|     } | ||||
| 
 | ||||
|     public static void main(String[] args) { | ||||
| 
 | ||||
|         F<String, IO<Unit>> printLetters = i -> printLetters(i); | ||||
| 
 | ||||
|         IO<Unit> lowerCase = IOFunctions | ||||
|           .stdoutPrintln("What's your first Name ?"); | ||||
| 
 | ||||
|         IO<Unit> input = IOFunctions.stdoutPrint("First Name: "); | ||||
| 
 | ||||
|         IO<Unit> userInput = IOFunctions.append(lowerCase, input); | ||||
| 
 | ||||
|         IO<String> readInput = IOFunctions.stdinReadLine(); | ||||
| 
 | ||||
|         F<String, String> toUpperCase = i -> i.toUpperCase(); | ||||
| 
 | ||||
|         F<String, IO<Unit>> transformInput = F1Functions | ||||
|           .<String, IO<Unit>, String> o(printLetters).f(toUpperCase); | ||||
| 
 | ||||
|         IO<Unit> readAndPrintResult = IOFunctions.bind(readInput, | ||||
|           transformInput); | ||||
| 
 | ||||
|         IO<Unit> program = IOFunctions.bind(userInput, | ||||
|           nothing -> readAndPrintResult); | ||||
| 
 | ||||
|         IOFunctions.toSafe(program).run(); | ||||
| 
 | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,48 @@ | ||||
| package com.baeldung.fj; | ||||
| 
 | ||||
| import fj.F; | ||||
| import fj.Show; | ||||
| import fj.data.Array; | ||||
| import fj.data.List; | ||||
| import fj.data.Option; | ||||
| import fj.function.Characters; | ||||
| import fj.function.Integers; | ||||
| 
 | ||||
| public class FunctionalJavaMain { | ||||
| 
 | ||||
|     public static final F<Integer, Boolean> isEven = i -> i % 2 == 0; | ||||
|      | ||||
|     public static void main(String[] args) { | ||||
|          | ||||
|         List<Integer> fList = List.list(3, 4, 5, 6); | ||||
|         List<Boolean> evenList = fList.map(isEven); | ||||
|         Show.listShow(Show.booleanShow).println(evenList); | ||||
|          | ||||
|         fList = fList.map(i -> i + 1); | ||||
|         Show.listShow(Show.intShow).println(fList); | ||||
|          | ||||
|         Array<Integer> a = Array.array(17, 44, 67, 2, 22, 80, 1, 27); | ||||
|         Array<Integer> b = a.filter(Integers.even); | ||||
|         Show.arrayShow(Show.intShow).println(b); | ||||
| 
 | ||||
|         Array<String> array = Array.array("Welcome", "To", "baeldung"); | ||||
|         Boolean isExist = array.exists(s -> List.fromString(s).forall(Characters.isLowerCase)); | ||||
|         System.out.println(isExist); | ||||
|          | ||||
|         Array<Integer> intArray = Array.array(17, 44, 67, 2, 22, 80, 1, 27); | ||||
|         int sum = intArray.foldLeft(Integers.add, 0); | ||||
|         System.out.println(sum); | ||||
|          | ||||
|         Option<Integer> n1 = Option.some(1); | ||||
|         Option<Integer> n2 = Option.some(2); | ||||
| 
 | ||||
|         F<Integer, Option<Integer>> f1 = i -> i % 2 == 0 ? Option.some(i + 100) : Option.none(); | ||||
| 
 | ||||
|         Option<Integer> result1 = n1.bind(f1); | ||||
|         Option<Integer> result2 = n2.bind(f1); | ||||
| 
 | ||||
|         Show.optionShow(Show.intShow).println(result1); | ||||
|         Show.optionShow(Show.intShow).println(result2); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user