powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Определение полиморфизма?
11 сообщений из 61, страница 3 из 3
Определение полиморфизма?
    #36771570
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коротко и на пальцах.
Полиморфизм это принцип легко взаимозаменяемых модулей в любом автомате.
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36771861
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvin_модtchingiz,

А это что ?
Код: plaintext
1.
func f(x) return x

параметрический полиморфизм, очевидно же, функция типа
f :: a -> a

и называется она identity (в CL/Scheme) или id (в Haskell)
думаю да.
под полиморфизм включения не подходит - нет иерархии подтипов,
работает одинаково для всех типов и, можно трактовать, что использует "общую структуру" всех множеств - каждый элемент каждого множества можно сравнивать с собой
и получать результат true.
под полиморфизм перегрузки и приведения тоже не подходит.
Остается только параметрический.
У Харрисона введение в функциональное программирование перегрузка
вообще не полиморфизм, а функция идентичности приводится как пример
полиморфизма.
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36772104
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И Карделли с Вегнером и Харрисон ссылаются на некоего Стрейчи.
Причем Харрисон в явной форме приписывает авторство термина Стрейчи
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36772131
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще одно. Стрейчи похоже, был голова
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36772958
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tchingizУ Харрисона введение в функциональное программирование перегрузка
вообще не полиморфизм, а функция идентичности приводится как пример
полиморфизма.
наследование+полиморфизм=перегрузка, (которая вообще не полиморфизм)
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36854043
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
замечание от Пирса. Типы в языках программирования
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36854048
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторполиморфизм это - средство решения задачи типизации терма.

Средство состоит из двух компонет:
- множества полиморфных функций //то есть, две и/ли более
или бинарного отношения полиморфизма на функциях;
- правила/алгоритма/указания которое по тексту программы и номеру байта в программе
выбирает конкретную функцию из множества полиморфных функций.

/*типизация терма == определение типа терма без его вычисления */


отношение полиморфизма задается средствами языка.
Например, текст
Код: plaintext
func f(x) return x
в соответствующем языке задает потенциально бесконечное множество функций идентити,
по одной для каждого типа.
в одном из примеров (статический и динамический.) отNotGonnaGetUs
/topic/418324&pg=1#4030553

язык задает три функции X::parseInt, родительская (унаследованная) Y::parseInt и
детская (перегруженная) Y::parseInt и два правила выбора

- одно для динамического полиморфизма - выбирается детская функция ;
- одно для статического полиморфизма - выбирается родительская функция.
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36854526
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- одно для статического полиморфизма - выбирается родительская функция.
виноват
- одно для статического полиморфизма - выбирается функция родительского объекта,
а не унаследованная от родителя
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36854528
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://fprog.ru/2010/issue4/roman-dushkin-existentials/

Роман Душкин
1. Предикативный параметрический полиморфизм проявляется тогда, когда в качестве значений типовых переменных могут быть подставлены только мономорфные типы («монотипы»), то есть такие типы, в определениях которых не используются типовые переменные.
2. Непредикативный параметрический полиморфизм позволяет конкретизировать типовые переменные произвольными типами (мономорфными и полиморфными), в том числе и рекурсивно: если в определении типа τ используется типовая переменная α, то при конкретизации вместо неё может быть подставлен сам тип τ. В данном случае слово «непредикативный» обозначает, что при определении сущности возможно использование ссылки на саму определяемую сущность, что потенциально может привести к парадоксам типа канторовского и расселовского. Иногда непредикативный полиморфизм называют полиморфизмом первого класса.

Существует еще одна система классификации параметрических полиморфных типов, основаная на понятии ранга. В данной классификации выделяют три подвида параметрического полиморфизма:

1. Полиморфизм ранга 1 (также предварённый полиморфизм или let-полиморфизм) предполагает, что в качестве типовых переменных могут быть подставлены только монотипы. Соответственно, предварённый полиморфизм может быть только предикативным. В языках семейства ML (включая язык Haskell стандарта 98 года без расширений) используется именно этот вид параметрического полиморфизма.
2. Полиморфизм ранга k (при k > 1) позволяет конкретизировать типовые переменные полиморфными типами ранга не выше (k - 1). В [2] доказано, что вывод типов возможен для k = 2, но для больших k задача вывода типов неразрешима.
3. Полиморфизм высшего ранга (полиморфизм ранга N) проявляется тогда, когда конкретизация типовых переменных может производиться произвольными типами, в том числе и полиморфными любого ранга. Непредикативный полиморфизм высшего ранга является наиболее общим видом параметрического полиморфизма.
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36865923
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvin_модtchingiz,

А это что ?
Код: plaintext
1.
func f(x) return x

параметрический полиморфизм, очевидно же, функция типа
f :: a -> a

и называется она identity (в CL/Scheme) или id (в Haskell)
совпало мнение с классиком


Карделли О понимании
Сходным образом и функция идентификации может быть определена только для конкретных типов, например, целых: fun(x:Int)x. Мы не можем отразить тот факт, что её форма не зависит ни от какого типа. Мы не можем выразить идею одинаковой функциональной формы для множества типов, и должны явно связывать переменные и значения с определенным типом в момент, когда такое связывание может быть преждевременным.

То, что данная функциональная форма одинакова для всех типов, можно выразить с помощью кванторов всеобщности. В частности, функцию идентификации можно выразить так:

Код: plaintext
value id = all[a] fun(x:a) x

В этом определении id а – это переменная типа, а all[a] предоставляет абстракцию для а, так что id – это идентификатор для всех типов. Чтобы применить функцию идентификации к аргументу определенного типа, мы должны сперва представить тип как параметр, а затем аргумент данного типа:

Код: plaintext
id [Int] ( 3 )

(Здесь используется соглашение, что параметр типа заключен в квадратные скобки, а типизированный аргумент – в круглые)

Такие функции, как id, требующие параметр типа прежде, чем они могут быть применены к функциям некоторого типа, мы будем называть обобщенными функциями (generic functions). Id – это обобщенная функция идентификации.
...
Рейтинг: 0 / 0
Определение полиморфизма?
    #36893810
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
полиморфизм - это средство решения задачи типизации.
Состоит из классов функций, находящихся в отношении полиморфизма между собой
(похоже, классы эквивалентности) и отображения,
которое вхождению имени каждой функции в каждом выражени каждой программы
ставит в соответствие одну из полиморфных функций
...
Рейтинг: 0 / 0
11 сообщений из 61, страница 3 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Определение полиморфизма?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]