gitextract__67be5e7/ ├── .gitignore ├── LICENSE ├── README.md └── source-code/ └── allaboutscala/ ├── .gitignore ├── build.sbt ├── project/ │ ├── build.properties │ └── plugins.sbt └── src/ └── main/ └── scala/ └── com/ └── allaboutscala/ └── chapter/ ├── eight/ │ ├── Aggregate_Tutorial.scala │ ├── Collect_Tutorial.scala │ ├── Diff_Tutorial.scala │ ├── DropWhile_Tutorial.scala │ ├── Drop_Tutorial.scala │ ├── Exists_Tutorial.scala │ ├── FilterFilterNot_Tutorial.scala │ ├── Find_Tutorial.scala │ ├── FlatMap_Tutorial.scala │ ├── Flatten_Tutorial.scala │ ├── FoldLeft_Tutorial.scala │ ├── FoldRight_Tutorial.scala │ ├── Fold_Tutorial.scala │ ├── Foreach_Tutorial.scala │ ├── GroupBy_Tutorial.scala │ ├── Head_Tutorial.scala │ ├── Intersect_Tutorial.scala │ ├── IsEmpty_Tutorial.scala │ ├── Last_Tutorial.scala │ ├── Map_Tutorial.scala │ ├── MaxBy_Tutorial.scala │ ├── Max_Tutorial.scala │ ├── MinBy_Tutorial.scala │ ├── Min_Tutorial.scala │ ├── MkString_Tutorial.scala │ ├── NonEmpty_Tutorial.scala │ ├── Par_Tutorial.scala │ ├── Partition_Tutorial.scala │ ├── ReduceLeft_Tutorial.scala │ ├── ReduceRight_Tutorial.scala │ ├── Reduce_Tutorial.scala │ ├── ReverseIterator.scala │ ├── Reverse_Tutorial.scala │ ├── ScanLeft_Tutorial.scala │ ├── ScanRight_Tutorial.scala │ ├── Scan_Tutorial.scala │ ├── Size_Tutorial.scala │ ├── Slice_Tutorial.scala │ ├── SortBy_Tutorial.scala │ ├── SortWith_Tutorial.scala │ ├── Sorted_Tutorial.scala │ ├── Tail_Tutorial.scala │ ├── TakeRight_Tutorial.scala │ ├── TakeWhile_Tutorial.scala │ ├── Take_Tutorial.scala │ ├── Transpose_Tutorial.scala │ ├── Union_Tutorial.scala │ ├── Unzip3_Tutorial.scala │ ├── Unzip_Tutorial.scala │ ├── ViewTutorial.scala │ ├── WithFilter_Tutorial.scala │ ├── ZipWIthIndex.scala │ └── Zip_Tutorial.scala ├── five/ │ ├── ExtendMultipleTraits.scala │ ├── ExtendTrait_Tutorial.scala │ ├── TraitDependencyInjectionPartTwo_Tutorial.scala │ ├── TraitDependencyInjection_Tutorial.scala │ ├── TraitFactory_Tutorial.scala │ └── TraitWithTypes_Tutorial.scala ├── four/ │ ├── CaseClassInheritance_Tutorial.scala │ ├── CaseClass_Tutorial.scala │ ├── CompanionObjectAsFactory_Tutorial.scala │ ├── CompanionObjectFields_Tutorial.scala │ ├── CompanionObject_Tutorial.scala │ ├── ContraVariance_Tutorial.scala │ ├── Covariance_Tutorial.scala │ ├── ExtendClass_Tutorial.scala │ ├── ImplicitClass_Tutorial.scala │ ├── PackageObject_Tutorial.scala │ ├── SimpleClass_Tutorial.scala │ ├── SingletonObject_Tutorial.scala │ ├── TypeAlias_Tutorial.scala │ ├── TypeClass_Tutorial.scala │ └── package.scala ├── nine/ │ ├── Tutorial_01_Function_With_Future_Return_Type.scala │ ├── Tutorial_02_Non_Blocking_Future_Result.scala │ ├── Tutorial_03_Chain_Futures_FlatMap.scala │ ├── Tutorial_04_Chain_Futures_For_Comprehension.scala │ ├── Tutorial_05_Future_Option_With_For_Comprehension.scala │ ├── Tutorial_06_Future_Option_Map.scala │ ├── Tutorial_07_Composing_Futures.scala │ ├── Tutorial_08_Future_Sequence.scala │ ├── Tutorial_09_Future_Traverse.scala │ ├── Tutorial_10_Future_FoldLeft.scala │ ├── Tutorial_11_Future_Reduce.scala │ ├── Tutorial_12_Future_FirstCompletedOf.scala │ ├── Tutorial_13_Future_Zip.scala │ ├── Tutorial_14_Future_ZipWith.scala │ ├── Tutorial_15_Future_AndThen.scala │ ├── Tutorial_16_Future_Configure_ThreadPool.scala │ ├── Tutorial_17_Future_Recover.scala │ ├── Tutorial_18_Future_RecoverWith.scala │ ├── Tutorial_19_Future_FallbackTo.scala │ └── Tutorial_20_Future_Promise.scala ├── one/ │ ├── tutorial_04/ │ │ └── HelloWorld.scala │ ├── tutorial_05/ │ │ └── HelloWorldMain.scala │ ├── tutorial_06/ │ │ └── HelloWorldWithArguments.scala │ ├── tutorial_07/ │ │ └── HelloWorldWithArgumentsDebug.scala │ └── tutorial_10/ │ └── HelloWorldWithScalaLogging.scala ├── seven/ │ ├── MutableArrayBuffer_Tutorial.scala │ ├── MutableArrayStack_Tutorial.scala │ ├── MutableArray_Tutorial.scala │ ├── MutableBitSet_Tutorial.scala │ ├── MutableHashMap_Tutorial.scala │ ├── MutableHashSet_Tutorial.scala │ ├── MutableLinkedHashMap_Tutorial.scala │ ├── MutableLinkedHashSet_Tutorial.scala │ ├── MutableListBuffer_Tutorial.scala │ ├── MutableListMap_Tutorial.scala │ ├── MutableMap_Tutorial.scala │ ├── MutableQueue_Tutorial.scala │ ├── MutableSet_Tutorial.scala │ ├── MutableSortedSet_Tutorial.scala │ ├── MutableTreeSet_Tutorial.scala │ └── PriorityQueue_Tutorial.scala ├── six/ │ ├── ImmutableBitSet_Tutorial.scala │ ├── ImmutableHashMap_Tutorial.scala │ ├── ImmutableHashSet_Tutorial.scala │ ├── ImmutableListMap_Tutorial.scala │ ├── ImmutableListSet_Tutorial.scala │ ├── ImmutableList_Tutorial.scala │ ├── ImmutableMap_Tutorial.scala │ ├── ImmutableQueue_Tutorial.scala │ ├── ImmutableSequence_Tutorial.scala │ ├── ImmutableSet_Tutorial.scala │ ├── ImmutableSortedSet_Tutorial.scala │ ├── ImmutableStack_Tutorial.scala │ ├── ImmutableStream_Tutorial.scala │ ├── ImmutableTreeMap_Tutorial.scala │ ├── ImmutableTreeSet_Tutorial.scala │ └── ImmutableVector_Tutorial.scala ├── three/ │ ├── CreateAndUseFunction_Tutorial.scala │ ├── FunctionAsValues_Tutorial.scala │ ├── FunctionByName_Tutorial.scala │ ├── FunctionCompositionAndThen_Tutorial.scala │ ├── FunctionCompositionCompose_Tutorial.scala │ ├── FunctionCurriedParameterGroups_Tutorial.scala │ ├── FunctionDefinedAsSymbols_Tutorial.scala │ ├── FunctionHigherOrderAsParameters_Tutorial.scala │ ├── FunctionRecursiveTailCall_Tutorial.scala │ ├── FunctionRecursive_Tutorial.scala │ ├── FunctionTrampoline_Tutorial.scala │ ├── FunctionWhichIsImplicit_Tutorial.scala │ ├── FunctionWhichIsNested.scala │ ├── FunctionWhichIsPartial_Tutorial.scala │ ├── FunctionWhichIsPolymorphicWithGenericReturnType_Tutorial.scala │ ├── FunctionWhichIsTyped_Tutorial.scala │ ├── FunctionWithCallbackParameter_Tutorial.scala │ ├── FunctionWithImplicitParameters_Tutorial.scala │ ├── FunctionWithOptionParameters_Tutorial.scala │ ├── FunctionWithOptionReturnType_Tutorial.scala │ ├── FunctionWithParameters_Tutorial.scala │ └── FunctionWithVariableArguments_Tutorial.scala └── two/ ├── tutorial_01/ │ └── VariablesBasics_Tutorial.scala ├── tutorial_02/ │ └── StringInterpolation_Tutorial.scala ├── tutorial_03/ │ └── EscapeCharacter_Tutorial.scala ├── tutorial_04/ │ └── VariablesTypeInference_Tutorial.scala ├── tutorial_05/ │ └── If_Else_Expression_Tutorial.scala ├── tutorial_06/ │ └── ForLoop_Tutorial.scala ├── tutorial_07/ │ └── Range_Tutorial.scala ├── tutorial_08/ │ └── WhileLoop_Tutorial.scala ├── tutorial_09/ │ └── PatternMatching_Tutorial.scala ├── tutorial_10/ │ └── Tuples_Tutorial.scala ├── tutorial_11/ │ └── Option_Tutorial.scala ├── tutorial_12/ │ └── TypeHierarchy_Tutorial.scala └── tutorial_13/ └── Enumeration_Tutorial.scala