Оберон-клуб «ВЄДАsoft»
https://zx.oberon.org/forum/

создаём свои ad-hoc полиморфные или же перегруженные функции
https://zx.oberon.org/forum/viewtopic.php?f=2&t=415
Страница 3 из 3

Автор:  budden [ 05 дек 2018, 10:10 ]
Заголовок сообщения:  Re: создаём свои ad-hoc полиморфные или же перегруженные функции

Цитата:
Я не оберонщик

Ну не надо грязи на оберонщиков. Ситуация с терминологией в ИТ плачевна и я думаю, дело здесь в американском капитализме. Терминология - это тоже поле рыночного соревнования. Каждый маркетолог придумывает новое слово. Человек слышит новое слово, на секунду замирает, у него фильтры подвисают и в этот момент ему можно что-то впарить. В науке это тоже имеет место, поскольку при капитализме и наука является частным случаем торговли. Я здесь не агитирую за советскую власть, а просто хочу сказать о том, что оберонщики не хуже всех остальных. Скорее лучше - европейская школа ведь, Швейцария. Тихо сидим за горами на импортных золотых зубах, все тоннели заминированы, дома запасов еды на 4 месяца. Совсем не то, что англосаксы. Хотя Хаскель, будучи европейским, тоже очень агрессивен в плане придумывания и навязывания терминологии взамен уже существующей. Но это англосаксы. Мягкая сила, всё такое.

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

Дальше смотрим книжку. В кругах кого эта книжка является общепризнанным источником терминологии?

Автор:  budden [ 05 дек 2018, 10:17 ]
Заголовок сообщения:  Re: создаём свои ad-hoc полиморфные или же перегруженные функции

К сожалению, нет временных ресурсов подробно читать то, что ты написал. К чему придраться по сути я уже нашёл, но пока не буду. Спасибо на самом деле, постараюсь прочитать и понять.

Автор:  geniepro [ 05 дек 2018, 11:36 ]
Заголовок сообщения:  Re: создаём свои ad-hoc полиморфные или же перегруженные функции

budden писал(а):
Хотя Хаскель, будучи европейским, тоже очень агрессивен в плане придумывания и навязывания терминологии взамен уже существующей.
Вообще, Хаскелл был разработан международным комитетом по ФП, хотя наглосаксы и правда там являются основным костяком. Тем не менее, в нынешнем комитете по стандартизации Хаскелла есть даже русский -- Виталий Брагилевский.
budden писал(а):
Дальше смотрим книжку. В кругах кого эта книжка является общепризнанным источником терминологии?
Лука Карделли давно известный учёный в информатике, в основном он известен в области ООП.
Так же Карделли участвовал в разработке Модулы-3 (отличается от Модулы-2 наличием дженериков, сборщика мусора).

Автор:  geniepro [ 05 дек 2018, 11:41 ]
Заголовок сообщения:  Re: создаём свои ad-hoc полиморфные или же перегруженные функции

budden писал(а):
К сожалению, нет временных ресурсов подробно читать то, что ты написал. К чему придраться по сути я уже нашёл, но пока не буду. Спасибо на самом деле, постараюсь прочитать и понять.

Проще говоря, твоя процедура Печ вполне себе мономорфна, ведь она принимает в качестве параметра указатель на объект типа Meta.DynamicallyTypedPtr, а дальше уже разбирается, что там в этом объекте внутри. Это некая смесь между вариантной записью и приведением к базовому типу в полиморфизме наследования. Ну да, если и называть твой способ полиморфным, то только как полиморфизм наследования -- стандартный способ для ООП.

Как было написано где-то в интернете, ad hoc полиморфизм -- это когда есть разные функции с одинаковыми именами...

Автор:  budden [ 05 дек 2018, 12:40 ]
Заголовок сообщения:  Re: создаём свои ad-hoc полиморфные или же перегруженные функции

А ITEM какова? Тот же вопрос про LENGTH или SHORT/.

Автор:  geniepro [ 05 дек 2018, 13:44 ]
Заголовок сообщения:  Re: создаём свои ad-hoc полиморфные или же перегруженные функции

budden писал(а):
А ITEM какова?
Не знаю, что такое твой ITEM, скинь ссылку на его описание.
budden писал(а):
Тот же вопрос про LENGTH или SHORT/.
В Обероне/КП есть перегруженные предопределённые процедуры типа ABS, ASH, LONG, MAX, ORD, SHORT, SIZE, DEC/INC, NEW -- вот это и есть пример перегрузки (ad hoc полиморфизма), но они реализованы на уровне компилятора, так что на самом деле это псевдопроцедуры.

Автор:  budden [ 05 дек 2018, 15:04 ]
Заголовок сообщения:  Re: создаём свои ad-hoc полиморфные или же перегруженные функции

Описания у неё нет, пример выше по теме viewtopic.php?f=2&t=415&start=10#p3245
А смысл её в том, что она берёт объект любого типа (на самом деле пока только INTEGER и BOOLEAN), создаёт из него объект типа "вариант", который пока называется DynamicallyTyped и возвращает указатель на этот объект.

И она реализована как встроенная функция/псевдопроцедура (я расширил компилятор).

Внутри она во время компиляции по типу аргумента, известному компилятору, выбирает функцию like a NewDynamicallyTypedPtrFromINTEGER и подставляет её вместо себя.

Автор:  geniepro [ 09 дек 2018, 22:30 ]
Заголовок сообщения:  Re: создаём свои ad-hoc полиморфные или же перегруженные функции

Кстати, в языке Rust есть такое понятие, как Trait (типаж), по сути очень похоже на классы типов хаскелла...

Автор:  geniepro [ 16 янв 2019, 21:25 ]
Заголовок сообщения:  Re: создаём свои ad-hoc полиморфные или же перегруженные функции

upd. Дубликат удалён.

Страница 3 из 3 Часовой пояс: UTC + 2 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/