On Github thebignet / talk-functional-prog
Développeur passionné
#craftmanship #TDD #DDD #jobHacker #JVM
String msg = "Hello"; void sayHello(){ msg += " "; msg += "World"; msg += " "; msg += "!"; System.out.println(msg); } sayHello(); // Output : Hello World ! sayHello(); // Output : Hello World ! World !
F(n) = F(n-1) + F(n-2) F(0)=0 F(1)=1
public static int fibonacci(int number) { int fib1 = 1; int fib2 = 1; int fibonacci = fib1; for (int i = 2; i < number; i++) { fibonacci = fib1 + fib2; fib1 = fib2; fib2 = fibonacci; } return fibonacci; } for(int i = 1; i <= 10; i++) { System.out.print(fibonacci(i) +" "); } // Output: 1 1 2 3 5 8 13 21 34 55
Stream.iterate( new int[]{1, 1}, fib -> new int[] {fib[1], fib[0] + fib[1]} ) .mapToInt(fib -> fib[0]) .limit(10) .forEach(fib -> System.out.print(fib + " ")); // Output: 1 1 2 3 5 8 13 21 34 55
val elu = List( ("A",1),("A",1),("A",2),("A",5),("A",5), ("B",1),("B",1),("B",1),("B",2),("B",2), ("C",2),("C",2),("C",3),("C",4),("C",4) ) .groupBy(_._1) // pour chacun des candidats .mapValues(_ .map(_._2) .sorted // on les trie par score .drop(1) // on supprime le premier .dropRight(1) // et le dernier ) .mapValues(l => l.sum.toFloat / l.length) // ensuite, on prend la moyenne du score .maxBy(_._2) // on garde celui qui a la meilleure moyenne ._1 // puis on garde le nom du candidat println(elu)