ObjectFunctional
Last edit May 24, 2011
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