Какие языки в настоящее время поддерживают миксины? - PullRequest
3 голосов
/ 06 апреля 2010

Ну, очевидно, Руби и Сасс, но какие еще есть?

Ответы [ 6 ]

4 голосов
/ 06 апреля 2010

В вики есть список

http://en.wikipedia.org/wiki/Mixin#Programming_languages_that_use_mixins

Цитировать:

Языки программирования, использующие миксины

За исключением ароматов и CLOS (часть Common Lisp), некоторые языки, которые используют Mixins являются:

* ColdFusion (Class based using includes and Object based 
  by assigning methods from one object to another at runtime)
* Curl(with Curl RTE)
* D (called "template mixins")
* Factor[citation needed]
* Fantom
* Ioke
* JavaFX Script
* JavaScript
* Object REXX
* OpenLaszlo
* Perl[3]
* PLT Scheme (mixins documentation)
* Python
* Ruby
* Scala
* Smalltalk
* Strongtalk
* Vala
* Visual Dataflex
* XOTcl/TclOO (object systems for Tcl)[4]

Некоторые языки, такие как ECMAScript (обычно называемый JavaScript) не поддерживают миксины на языке уровень, но может легко имитировать их копирование методов из одного объекта в другой во время выполнения, тем самым «заимствование» методов миксина. Заметка что это невозможно с статически типизированные языки, где подпись объекта фиксируется при компиляции время.

1 голос
/ 06 апреля 2010

_why's зелье язык приходит на ум. Идея состоит в том, что объекты имеют состояние и методы. В большинстве языков состояние происходит в объекте, методы происходят в классе. В сущности, объекты имеют только состояние, методы полностью обрабатываются миксинами.

Цитата из файла

ВСЕ - ОБЪЕКТ. ЧЕТНОЕ СМЕСИ - ОБЪЕКТЫ. И, конечно, ЗАКРЫТИЯ - ОБЪЕКТЫ.

Однако ОБЪЕКТЫ НЕ ВСЕ. Они бесполезны без смесей.

на заметку, я скучаю, почему. нам нужно, чтобы больше людей делали дикие штучки вроде этого

1 голос
/ 06 апреля 2010

Perl's Роли можно назвать миксинами.

1 голос
/ 06 апреля 2010

Обе версии 1 и 2 D поддерживают mixins .

0 голосов
/ 06 апреля 2010

JavaScript поддерживает их. Вы можете добавлять функции / поля в прототип объекта в любое время.

0 голосов
/ 06 апреля 2010

Ну, Ароматизатор конечно. Это превратилось в CLOS .

...