On 16.07.2012 23:59, Artem Chuprina wrote: > >> >> >> В такой интерпретации ясно, что если в неком языке императивный > >> >> >> вычислитель явно не просматривается, то и от ОО-модели этот язык > не > >> >> >> особо выиграет. > >> >> АН> Почему не выиграет? > >> >> Потому что их приткнуть либо некуда, либо незачем. > >> АН> Для функциональных, опять же, понятно: есть функция. Объекты не > >> АН> требуются. Инкапсуляция обеспечивается функцией. Наследование > >> АН> заменяется агрегацией. Полиморфизм... Тоже может быть. Я очень > >> АН> плохо знаком с функциональной парадигмой. > >> Полиморфизм поведенческий, а агрегация плюс полиморфизм - это уже > >> больше, чем наследование. Наследование оказывается как-то не очень > >> нужным. > АН> Так, получается, это тоже самое наследование, только "под другим углом"? > Наоборот. Наследование, если смотреть на парадигму - это один из > (ограниченных) взглядов на полиморфизм. Почему? Полиморфизм разве не является наследованием чего-либо, а наследование не предполагает полиморфизм? Разве это не всегда совместно существующие вещи?
> АН> Как ни странно, замыкания поддерживает JS. :-) Естественно, встречалось. > И > АН> нередко используется. > АН> Но, насколько я понимаю, это получается уже не "чистая функция"... > В функциональных языках - чистая. JS, а также Perl, Python etc. - языки > с _элементами_ функциональной парадигмы. Там функция - не first-class > entity, и количество возможных операций с нею сильно ограничено. Ну а разве сохранение состояния между вызовами не нарушает "чистоты" языка и не может привести к каким-либо странным эффектам? > АН> Не знаю, и не то это. В объекте привлекает то, что возможно > АН> изменять атрибуты... Хотя... Через замыкания тоже возможно > АН> построить классы и объекты (что и делают). Но, в том же JS, не > АН> самый очевидный для понимания типа наследования. На прототипах. По > АН> сравнению с наследованием классов - это сложнее. У класса - чётко > АН> определённый интерфейс, который виден через его описание. И всегда > АН> известно, что будет делать объект. Даже если используется > АН> полиморфизм, у объекта всё-равно есть тип. При прототипном > АН> наследовании, кажется, не всё так однозначно... И нет такой > АН> строгой системы классов. И строгой иерархии тоже нет (хотя и в > АН> языках с наследованием классов, тоже нет иерархии, в общем случае, > АН> так что - фиг его знает)... > Обычно, если у языка есть выделенная парадигма, то большинство операций > проще как минимум для понимания, а чаще и для реализации, именно в ней. Угу, только языки и парадигмы в сравнении друг с другом могут быть проще или сложнее для понимания. > Т.е., в терминологии ООП, добавлять > общее поведение совершенно разнородным объектам. И всё вышеописанное > там делается совершенно не так, как в ООП. Вместо "этот объект может > делать то-то и то-то так-то и так-то" - "эта сущность является частным > случаем вон той абстракции при взгляде вот под таким углом, и вот этой > абстракции - при взгляде вот под этим углом". Это, собственно, более > широкий взгляд на полиморфизм. Т.е., нечто вроде множественного контекстно зависимого наследования? -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/5005847d.7010...@yandex.ru