Skip to content

jabrena/functional-rosetta-stone

Repository files navigation

Functional Rosetta Stone

Java CI

Goal

A repository to review the main concepts about Functional Programming with Java.

How to build the project in local?

sdk env install
./mvnw clean test -DexcludedGroups=performance,endtoend
./mvnw clean test -DexcludedGroups=performance,endtoend -pl training
./mvnw clean test -DexcludedGroups=performance,endtoend -Dtest=EitherTest -pl training
./mvnw clean compile exec:java -Dexec.mainClass="info.jab.fp.concepts.FunctionalCompositionExamples" -Dexec.args="--enable-preview" -pl training
./mvnw clean test -Dgroups=performance
./mvnw clean test -Dgroups=endtoend

./mvnw versions:display-property-updates
./mvnw versions:display-dependency-updates
./mvnw versions:display-plugin-updates
./mvnw dependency:tree -pl problems 

Functional programming features in Java

Functional programming features

  • Equational Reasoning
  • Pure/Impure functions
  • Referential Transparency
  • Immutability
  • Functional composition
  • Eager vs Lazy

How to run the presentation in local?

jwebserver -p 9000 -d "$(pwd)/docs/"

Performance

Using the jmh-results.json you can review the performance results:

References