Здравствуйте, samius, Вы писали:
S>Сначала "я могу легко ткнуть тебе", а потом такой отъезд. Не осилил легкотню. Балабол. Балабол с красным дипломом МГУ!
ОК, тыкаю носом, если уж так хочешь: открываешь этот
https://cs.msu.ru/sites/cmc/files/docs/fiit_bachelor_full-time_i.pdf документ и видишь в разделе "профессиональный цикл, базовая часть" (т.е. обязательная для всех студентов часть) предмет под названием "Архитектура ЭВМ и язык Ассемблера".
S>>>А в этом прямо процитированном тескте очевидно что ты ушел от вопроса о чистоте map функции.
_>>А этот вопрос имеет какое-то отношение к явному противоречию в двух твоих фразах в разных сообщениях? ) Или быть может ты просто хочешь замять эту тему, перекинув обсуждение на другие вопросы (чистота map и т.п.)? ))) Хотя это видимо риторический вопрос...
S>Я хотел посмотреть на твои выкрутасы, когда будешь рассуждать о чистоте функций ВП, а я бы по твоей задумке передавал бы в них грязный и чистые по очереди, и спрашивал, что так быстро переобулся?
Ну т.е. я так понимаю, что ты уже отказываешься от своего изначального тезиса о том, что функция apply параметрически полиморфная? ))) Теперь её свойства по твоему определяются переданными параметрами, правильно? Или нет? Ты уже определился с этим моментом или у тебя в каждом сообщение разный подход будет? )))
_>>Так вот я тебя и спрашиваю про следствия, вытекающие из твоего определения. Они оказываются весьма и весьма забавными. Но т.к. это всё же твои определения, то хотелось бы в начале услышать твоё подтверждение, что ты действительно в курсе этого и считаешь это нормальным. )
S>Мои определения? Можно цитату?
Ну так а кто у нас тут утверждает, что для анализа вида полиморфизма необходимо проследить весь стек вызова? ) Это твоё утверждение (я ещё специально уточнял) и вот из него следует очень много забавных выводов... )
_>>Не верно. Вводя дополнительные перегрузки мы модифицируем (расширяем) код нашей функции. Собственно это и есть основной минус ad hoc полиморфизма — для добавление поддержки нового типа требуется расширение кода функции.
S>О, т.е. по-твоему выходит что все перегруженные по типу функции — это код одной и той же функции?
Не важно как это называть, набором перегруженных функций, или специализациями шаблона или просто куском кода, реализующим полиморфизм. Главное отличие специального полиморфизма будет в том, что при добавление работы с новым типом нам потребуется модифицировать (обычно дополнить) это наш код. А в случае параметрического полиморфизма не потребуется.
_>>А в обсуждаемом случае функция f будет подхватывать новые типы сама, без всякой её модификации (можешь даже скомпилировать её в отдельный бинарный модуль для полной чистоты эксперимента, а потом добавлять новые типы — всё будет работать).
S>А функции сравнения для разных типов при этом не являются расширением одной и той же функции? Или их не нужно писать вместе с новыми типами?
Естественно не являются. Они относятся к определению типа (собственно во многих языках их даже вне типа и определить невозможно) и используются далеко не только внутри данной функции.
А с твоей бредовой логикой получается, что если я использую функцию printf внутри своей, то можно будет называть printf расширением моей функции. )))
_>>Ну так у функции f как раз никаких проблем с бесконечностью нет. А своё мнение о хаскельвики я уже высказывал. )))
S>Угу, у функции f проблем с бесконечностью нет, они есть у бесконечности типов, которые требуют бесконечность функций сравнения. И главное — никаких неудобств, по сравнению с расширением тела одной бесконечно-расширяемой функции. Ну вообще никаких.
Я тут искал на форуме один старый пример (для другой дискуссии, не в КСВ и с адекватными собеседниками) и случайно наткнулся на просто замечательное сообщение
http://rsdn.org/forum/decl/4650406?tree=treeАвтор: samius
Дата: 07.03.12
и там дальше по ветке тоже интересно. Самое забавное, что ты там обсуждаешь даже не случаей типа my_equals_to (в котором реализованы техники полностью аналогичные реализации полиморфизма в Хаскеле), а просто обычные шаблоны C++ — прямо чудеса.

И да, в те времена ты был однозначно разумнее и адекватнее. )