├── .gitignore ├── LICENSE ├── README.md ├── project ├── Dependencies.scala └── build.properties └── src ├── main └── scala │ └── com │ └── cutajarjames │ ├── day1 │ ├── lesson1 │ │ ├── Day1Lesson1aStrict.sc │ │ ├── Day1Lesson1bStrInter.sc │ │ └── HelloWorld.scala │ ├── lesson2 │ │ ├── Day1Lesson2aHigherOrder.sc │ │ ├── Day1Lesson2bLambda.sc │ │ ├── Day1Lesson2cIf.sc │ │ ├── Day1Lesson2dComp.sc │ │ ├── Day1Lesson2eArrays.sc │ │ └── LeapYears.scala │ ├── lesson3 │ │ ├── Day1Lesson3aLists.sc │ │ ├── Day1Lesson3bSets.sc │ │ ├── Day1Lesson3cListsMore.sc │ │ ├── Day1Lesson3dFiltering.sc │ │ ├── Day1Lesson3eExistsForAll.sc │ │ └── Day1Lesson3fMapping.sc │ └── lesson4 │ │ ├── Day1Lesson4aFlatten.sc │ │ ├── Day1Lesson4bZip.sc │ │ ├── Day1Lesson4cLazy.sc │ │ ├── Day1Lesson4dStream.sc │ │ ├── Day1Lesson4eStreamMore.sc │ │ ├── Day1Lesson4fFib.sc │ │ ├── Day1Lesson4gMaps.sc │ │ └── Day1Lesson4hMapsMore.sc │ ├── day2 │ ├── lesson1 │ │ ├── Day2Lesson1aOptionIntro.sc │ │ ├── Day2Lesson1bOptionList.sc │ │ ├── Day2Lesson1cOptionMapping.sc │ │ ├── Day2Lesson1dOptionOrElse.sc │ │ ├── Day2Lesson1eOptionMore.sc │ │ ├── Day2Lesson1fOptionMore2.sc │ │ ├── Day2Lesson1fOptionMore3.sc │ │ ├── Day2Lesson1gOptionErrors.sc │ │ └── Day2Lesson1hOptionComp.sc │ ├── lesson2 │ │ ├── Cat.scala │ │ ├── Day2Lesson2aFunctionsObjects.sc │ │ ├── Day2Lesson2bObjectsFunctions.sc │ │ ├── Day2Lesson2cDefault.sc │ │ ├── Day2Lesson2dCaseClasses.sc │ │ └── Day2Lesson2eCaseExtends.sc │ ├── lesson3 │ │ ├── Day2Lesson3aMatchValue.sc │ │ ├── Day2Lesson3bMatchType.sc │ │ ├── Day2Lesson3cMatchCase.sc │ │ └── Day2Lesson3dMatchOption.sc │ └── lesson4 │ │ ├── Day2Lesson4aMatchGuards.sc │ │ ├── Day2Lesson4bMatchGuardsMore.sc │ │ ├── Day2Lesson4cMatchList.sc │ │ └── Day2Lesson4dMatchListMore.sc │ ├── exercise1 │ └── Distances.scala │ ├── exercise2 │ └── BoxFormatting.scala │ ├── exercise3 │ ├── LazyPrimes.scala │ └── PrimesExp.sc │ ├── exercise4 │ ├── FindingHome.scala │ └── SecretSanta.scala │ ├── exercise5 │ └── CurrencyManager.scala │ ├── exercise6 │ └── SimpleSolver.scala │ ├── exercise7 │ └── SwapElements.scala │ └── extras │ ├── Extra.sc │ ├── ExtraCurry.sc │ ├── ExtraExtractors.sc │ ├── ExtraFolding.sc │ ├── ExtraFolding2.sc │ ├── ExtraFolding3.sc │ ├── ExtraFunctor.sc │ ├── ExtraMonad.sc │ ├── ExtraMonad2.sc │ └── ExtraRegex.sc └── test └── scala └── com └── cutajarjames ├── HelloWorldSpec.scala ├── exercise1 └── DistancesSpec.scala ├── exercise2 └── BoxFormattingSpec.scala ├── exercise3 └── LazyPrimesSpec.scala ├── exercise4 ├── FindingHomeSpec.scala └── SecretSantaSpec.scala ├── exercise5 └── CurrencyManagerSpec.scala ├── exercise6 └── SimpleSolverSpec.scala └── exercise7 └── SwapElementsSpec.scala /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | target/ 3 | *.class 4 | *.log 5 | .bsp/ 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/README.md -------------------------------------------------------------------------------- /project/Dependencies.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/project/Dependencies.scala -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=1.10.7 2 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson1/Day1Lesson1aStrict.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson1/Day1Lesson1bStrInter.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson1/HelloWorld.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/day1/lesson1/HelloWorld.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson2/Day1Lesson2aHigherOrder.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson2/Day1Lesson2bLambda.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson2/Day1Lesson2cIf.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson2/Day1Lesson2dComp.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson2/Day1Lesson2eArrays.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson2/LeapYears.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/day1/lesson2/LeapYears.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson3/Day1Lesson3aLists.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson3/Day1Lesson3bSets.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson3/Day1Lesson3cListsMore.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson3/Day1Lesson3dFiltering.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson3/Day1Lesson3eExistsForAll.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson3/Day1Lesson3fMapping.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson4/Day1Lesson4aFlatten.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson4/Day1Lesson4bZip.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson4/Day1Lesson4cLazy.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson4/Day1Lesson4dStream.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson4/Day1Lesson4eStreamMore.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson4/Day1Lesson4fFib.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson4/Day1Lesson4gMaps.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day1/lesson4/Day1Lesson4hMapsMore.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson1/Day2Lesson1aOptionIntro.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson1/Day2Lesson1bOptionList.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson1/Day2Lesson1cOptionMapping.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson1/Day2Lesson1dOptionOrElse.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson1/Day2Lesson1eOptionMore.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson1/Day2Lesson1fOptionMore2.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson1/Day2Lesson1fOptionMore3.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson1/Day2Lesson1gOptionErrors.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson1/Day2Lesson1hOptionComp.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson2/Cat.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/day2/lesson2/Cat.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson2/Day2Lesson2aFunctionsObjects.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson2/Day2Lesson2bObjectsFunctions.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson2/Day2Lesson2cDefault.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson2/Day2Lesson2dCaseClasses.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson2/Day2Lesson2eCaseExtends.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson3/Day2Lesson3aMatchValue.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson3/Day2Lesson3bMatchType.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson3/Day2Lesson3cMatchCase.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson3/Day2Lesson3dMatchOption.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson4/Day2Lesson4aMatchGuards.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson4/Day2Lesson4bMatchGuardsMore.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson4/Day2Lesson4cMatchList.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/day2/lesson4/Day2Lesson4dMatchListMore.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/exercise1/Distances.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/exercise1/Distances.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/exercise2/BoxFormatting.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/exercise2/BoxFormatting.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/exercise3/LazyPrimes.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/exercise3/LazyPrimes.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/exercise3/PrimesExp.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/exercise3/PrimesExp.sc -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/exercise4/FindingHome.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/exercise4/FindingHome.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/exercise4/SecretSanta.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/exercise4/SecretSanta.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/exercise5/CurrencyManager.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/exercise5/CurrencyManager.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/exercise6/SimpleSolver.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/exercise6/SimpleSolver.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/exercise7/SwapElements.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/exercise7/SwapElements.scala -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/Extra.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/main/scala/com/cutajarjames/extras/Extra.sc -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/ExtraCurry.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/ExtraExtractors.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/ExtraFolding.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/ExtraFolding2.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/ExtraFolding3.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/ExtraFunctor.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/ExtraMonad.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/ExtraMonad2.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/scala/com/cutajarjames/extras/ExtraRegex.sc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/test/scala/com/cutajarjames/HelloWorldSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/test/scala/com/cutajarjames/HelloWorldSpec.scala -------------------------------------------------------------------------------- /src/test/scala/com/cutajarjames/exercise1/DistancesSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/test/scala/com/cutajarjames/exercise1/DistancesSpec.scala -------------------------------------------------------------------------------- /src/test/scala/com/cutajarjames/exercise2/BoxFormattingSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/test/scala/com/cutajarjames/exercise2/BoxFormattingSpec.scala -------------------------------------------------------------------------------- /src/test/scala/com/cutajarjames/exercise3/LazyPrimesSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/test/scala/com/cutajarjames/exercise3/LazyPrimesSpec.scala -------------------------------------------------------------------------------- /src/test/scala/com/cutajarjames/exercise4/FindingHomeSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/test/scala/com/cutajarjames/exercise4/FindingHomeSpec.scala -------------------------------------------------------------------------------- /src/test/scala/com/cutajarjames/exercise4/SecretSantaSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/test/scala/com/cutajarjames/exercise4/SecretSantaSpec.scala -------------------------------------------------------------------------------- /src/test/scala/com/cutajarjames/exercise5/CurrencyManagerSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/test/scala/com/cutajarjames/exercise5/CurrencyManagerSpec.scala -------------------------------------------------------------------------------- /src/test/scala/com/cutajarjames/exercise6/SimpleSolverSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/test/scala/com/cutajarjames/exercise6/SimpleSolverSpec.scala -------------------------------------------------------------------------------- /src/test/scala/com/cutajarjames/exercise7/SwapElementsSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutajarj/FunctionalProgrammingExercises/HEAD/src/test/scala/com/cutajarjames/exercise7/SwapElementsSpec.scala --------------------------------------------------------------------------------