我们在这里讨论oo-functional hybrids,但我想知道,有多少语言真正符合这个名称。 Scala,Clojure,F#?还有吗?
每回答一个这样的语言会很棒,还有一点解释,为什么你认为它是oo-functional hybrid。
答案 0 :(得分:3)
Common Lisp。功能方面非常明显,另一方面,CLOS是所有对象模型的母亲。
答案 1 :(得分:3)
目标Caml - 与ML系列中的任何语言一样具有功能,但顾名思义,它也有一个发展良好的(并且有点独特 - 我所知道的唯一完全结构的)OO系统。
答案 2 :(得分:2)
Smalltalk中。我相信很多人会不同意,但我认为这种语言不仅具有一流的功能,而且使用它们的程度非常高,甚至最基本的结构(例如if / else和loop)都被实现为函数调用函数-type参数,值得标签“functional”。此外,你列出了Ruby,以及FP部门的大部分内容,它继承自Smalltalk。
答案 3 :(得分:2)
Nemerle(遗憾的是)并不是广为人知的功能OO混合设计,可以在.NET平台上运行。 Nemerle的有趣之处在于versatile macro system和powerful type inference。
答案 4 :(得分:1)
O'Haskell,它基本上是一个带有面向对象特征的Haskell。
答案 5 :(得分:0)
Racket是一种带有类系统的函数式语言(Scheme的方言)。类系统支持可覆盖的方法(如Java,C#)和可扩充的方法(超类的方法首先得到控制;它决定是否/何时调用子类的方法以及如何处理结果)。类系统还支持高阶合约。
实际上,Lisps和Schemes有很多对象系统。对于Common Lisp的CLOS可能是最着名和最有影响力的。