views:

84

answers:

5

We're discussing oo-functional hybrids here, but I wonder, how many languages actually qualify for this name. Scala, Clojure, F#? Any more?

It'd be great to get one such language per answer, and a little explanation, why you think it is oo-functional hybrid.

+3  A: 

Common Lisp. The functional aspects are quite evident, and, on the other hand, CLOS is the mother of all object models.

Pavel Minaev
+3  A: 

Objective Caml - as functional as any language from ML family is, but as the name implies, also has a well-developed (and somewhat unique - the only fully structural one I'm aware of) OO system.

Pavel Minaev
F# is basically just Objective Caml with a Microsoft sticker on it though.
Lajla
No, not really - their object models are entirely different (and that is largely what distinguishes OCaml from the rest of ML family in the first place!), and then either has major features the other does not - e.g. functors in OCaml, or active patterns and units of measurement in F#.
Pavel Minaev
+2  A: 

Smalltalk. I'm sure many will disagree, but I think that the language that not only had first-class functions, but used them so heavily that even the most fundamental constructs (such as if/else and loops) were implemented as function calls taking function-type arguments, deserves the label "functional". Besides, you list Ruby, and most of what it has in FP department, it inherited from Smalltalk.

Pavel Minaev
+3  A: 

Nemerle is (unfortunately) not so widely known functional-OO hybrid designed to run on the .NET platform. What makes Nemerle interesting is its versatile macro system and powerful type inference.

missingfaktor
+2  A: 

O'Haskell, which is basically a Haskell with object-oriented features bolted on.

missingfaktor