Size: a a a

Clojure — русскоговорящее сообщество

2020 July 21

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
источник

M

Maxim in Clojure — русскоговорящее сообщество
* Polymorphism

 Ability of a function to handle values of different types.
 Polymorphism is a fundamental property of a type system.

                            Polymorphism
                                  |
                   _____________ /|\________________
                  |               |                 |
                 Parametric     Ad hoc      Subtyping/Inclusion

*** Parametric
   - execution of the same code for all legal types.

   In the object-oriented programming community, this is often known as
   generics or generic programming.
   In the functional programming community, this is often shortened to
   polymorphism.

*** Ad hoc
   - execution of different code for every type.

   Function overloading allows to implement ad hoc polymorphism.

*** Subtyping/Inclusion
   - a function, written to operate on elements of the supertype can also
   operate on elements of the subtype.

   In the object-oriented programming community, this is often shortened to
   polymorphism.

* Source
 1. Hexlet - Полиморфизм: параметрический и ad hoc
 2. Полиморфизм_(информатика)
 3. Ad_hoc_polymorphism
 4. Polymorphism_(computer_science)
источник

M

Maxim in Clojure — русскоговорящее сообщество
Когда-то давно копался в теме и сделал такую заметку
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Maxim
* Polymorphism

 Ability of a function to handle values of different types.
 Polymorphism is a fundamental property of a type system.

                            Polymorphism
                                  |
                   _____________ /|\________________
                  |               |                 |
                 Parametric     Ad hoc      Subtyping/Inclusion

*** Parametric
   - execution of the same code for all legal types.

   In the object-oriented programming community, this is often known as
   generics or generic programming.
   In the functional programming community, this is often shortened to
   polymorphism.

*** Ad hoc
   - execution of different code for every type.

   Function overloading allows to implement ad hoc polymorphism.

*** Subtyping/Inclusion
   - a function, written to operate on elements of the supertype can also
   operate on elements of the subtype.

   In the object-oriented programming community, this is often shortened to
   polymorphism.

* Source
 1. Hexlet - Полиморфизм: параметрический и ad hoc
 2. Полиморфизм_(информатика)
 3. Ad_hoc_polymorphism
 4. Polymorphism_(computer_science)
найс
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Maxim
* Polymorphism

 Ability of a function to handle values of different types.
 Polymorphism is a fundamental property of a type system.

                            Polymorphism
                                  |
                   _____________ /|\________________
                  |               |                 |
                 Parametric     Ad hoc      Subtyping/Inclusion

*** Parametric
   - execution of the same code for all legal types.

   In the object-oriented programming community, this is often known as
   generics or generic programming.
   In the functional programming community, this is often shortened to
   polymorphism.

*** Ad hoc
   - execution of different code for every type.

   Function overloading allows to implement ad hoc polymorphism.

*** Subtyping/Inclusion
   - a function, written to operate on elements of the supertype can also
   operate on elements of the subtype.

   In the object-oriented programming community, this is often shortened to
   polymorphism.

* Source
 1. Hexlet - Полиморфизм: параметрический и ad hoc
 2. Полиморфизм_(информатика)
 3. Ad_hoc_polymorphism
 4. Polymorphism_(computer_science)
вот я такое  больше люблю. экстракт.
источник

DK

Denis Krivosheev in Clojure — русскоговорящее сообщество
Иван Федоров
я так подумал, что если разные структуры выполняют интерфейс Iterable, то полиморфен сам этот интерфейс, а функции которые пользуются им – получается [квази?]мономорфны.
Но это в вакууме, не факт что в Clojure так.
Это все полиморфизм... как раз в статье и описано
источник

DK

Denis Krivosheev in Clojure — русскоговорящее сообщество
Есть два основных типа полиморфизма, когда один и тот же код работает для разных типов и когда один и тот же интерфейс реализуется над разными типами
источник

DK

Denis Krivosheev in Clojure — русскоговорящее сообщество
И то и другое полиморфизм
источник

DK

Denis Krivosheev in Clojure — русскоговорящее сообщество
И у каждого из двух есть ещё подтипы
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Мне кажется проще смотреть на это вот так. Есть выражение

f(x,y,z)

Полиморфизм, это когда по типу хотя бы одного из аргументов (впрочем, не обязательно типу) исполняется определенный код. На мой взгляд, switch это тоже примитивная форма полиморфизма. В общем-то и то, и другое про ветвление
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
В классическом ООП это обычно работает только по первому аргументу (this)
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Mikhail Borisov
Мне кажется проще смотреть на это вот так. Есть выражение

f(x,y,z)

Полиморфизм, это когда по типу хотя бы одного из аргументов (впрочем, не обязательно типу) исполняется определенный код. На мой взгляд, switch это тоже примитивная форма полиморфизма. В общем-то и то, и другое про ветвление
Процессор один хрен будет джампы делать
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Ну в общем-то да
источник

wo

went out in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
Процессор один хрен будет джампы делать
Прям такой конкретный вопрос про оптимизацию, можно ли заставить не делать если в монаде ветвь предопределена?
источник

p

patinity in Clojure — русскоговорящее сообщество
Maksim N
И я не остался без кложуры на производстве. Спасибо большое Ивану 👍
да норм легко заметна под ногами
источник

p

patinity in Clojure — русскоговорящее сообщество
Dima Fomin
Вот паразиты в Яндексе: три строчки про функции (ни слова про ФПК) -> функции это запутанно -> всех спасут обьекты. Десятки тысяч чайников прочитают и поверят 😢 https://thecode.media/oop_battle/
ну такие вещи лечатся куда быстрее, чем некоторые внутренние установки
поржать можно над названием "ООП на пальцах"
источник

p

patinity in Clojure — русскоговорящее сообщество
на пальцах кого ..
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
went out
Прям такой конкретный вопрос про оптимизацию, можно ли заставить не делать если в монаде ветвь предопределена?
Монады это вроде не полиморфизм
источник

MB

Mikhail Borisov in Clojure — русскоговорящее сообщество
Ну то есть это вроде как оверлоад примерно работает
источник

p

patinity in Clojure — русскоговорящее сообщество
книга вот есть, а что-то не продвинулось в планировании, вот нужен прототип чтобы показать руководство вложиться в разработку боевого
источник