Combining ObjectOrientedProgramming and FunctionalProgramming. ObjectFunctional languages can be classified by how they handle state and I/O: * in "hybrid" ObjectFunctional languages, the core semantics is imperative, and support for FunctionalProgramming is added, but any function can potentially have SideEffect''''''s. * in "pure" ObjectFunctional languages, the core semantics is functional (i.e. guarantees ReferentialTransparency), and imperative aspects of ObjectOrientedProgramming are supported using MonadicProgramming, UniquenessTypes, etc. ** not impossible: a "pure-hybrid" where procedures and functions are separate types and functions may not have SideEffect''''''s (DeeLanguage allows kind of this). Hybrid ObjectFunctional languages: * NiceLanguage * PythonLanguage * RubyLanguage * CommonLisp * DeeLanguage * DylanLanguage * GooLanguage * NeedleLanguage * ObjectiveCaml * GroovyLanguage (maybe?) * ScalaLanguage * NemerleLanguage * OzLanguage * EeLanguage * CeeSharpLanguage (esp. 3.0) * CeePlusPlus with additions e.g. FunctoidsInCpp and the BoostLibraries. Pure ObjectFunctional languages: * OhHaskell Patterns * ObjectFunctionalPatterns It is possible to use some ObjectFunctionalPatterns for simple ObjectOrientedProgrammingLanguage''''''s. LambdaTheUltimate has a related department: http://lambda-the-ultimate.org/taxonomy/node/or/12 Also see MultiParadigmProgrammingLanguage, EqualRightsForFunctionalObjects. See also ObjectFunctionalDiscussion, ObjectFunctionalImplementation. ---- CategoryObjectFunctionalPatterns CategoryFunctionalProgramming CategoryMultiparadigm