AssumptionsOverviewvar and valClasses and ObjectsFunctionsFunctions that Return FunctionsCase ClassesDeclaring FunctionsCurryingAnonymous FunctionsHigher Order FunctionsPattern MatchingTraitsDistinguishing Abstract Classes and TraitsLazy EvaluationType ParametersThe Option TypeFutureSome Key Higher Order FunctionsSome Other Important Higher Order FunctionsConclusion