Сколько оо-функциональных гибридов есть? - PullRequest
3 голосов
/ 02 июля 2010

Мы обсуждаем оо-функциональные гибриды здесь, но мне интересно, сколько языков на самом деле соответствуют этому названию.Скала, Clojure, F #?Еще что-нибудь?

Было бы здорово получить один такой язык за ответ и небольшое объяснение, почему вы думаете, что это оо-функциональный гибрид.

Ответы [ 6 ]

3 голосов
/ 02 июля 2010

Objective Caml - такой же функциональный, как и любой язык из семейства ML, но, как следует из названия, также имеет хорошо развитую (и несколько уникальную - единственную полностью структурную) систему ОО.

3 голосов
/ 02 июля 2010

Common Lisp. Функциональные аспекты достаточно очевидны, и, с другой стороны, CLOS является матерью всех объектных моделей.

2 голосов
/ 02 июля 2010

Nemerle (к сожалению) не очень известный гибрид функционально-OO, разработанный для работы на платформе .NET. Что делает Nemerle интересным, так это его универсальная система макросов и мощный вывод типов .

2 голосов
/ 02 июля 2010

Smalltalk.Я уверен, что многие не согласятся, но я думаю, что язык, который не только имел первоклассные функции, но и использовал их настолько интенсивно, что даже самые фундаментальные конструкции (такие как if / else и циклы) были реализованы как вызовы функций, принимающих функциюАргументы типа, заслуживающие метки «функционал».Кроме того, вы перечислили Ruby, и большую часть того, что есть в отделе FP, он унаследовал от Smalltalk.

1 голос
/ 02 июля 2010

O'Haskell , который в основном является Haskell с объектно-ориентированными функциями, прикрепленными болтами.

0 голосов
/ 11 сентября 2011

Ракетка - это функциональный язык (диалект схемы) с системой классов. Система классов поддерживает как переопределяемые методы (такие как Java, C #) и расширяемые методы (метод суперкласса получает управление первым; он решает, следует ли / когда вызывать метод подкласса и что делать с результатом). Система классов также поддерживает контракты высшего порядка.

На самом деле существует множество систем объектов для Лиспса и Схем. CLOS для Common Lisp, пожалуй, самый известный и влиятельный.

...