Re[66]: «Собаку съел»
От: alex_public  
Дата: 28.02.17 09:42
Оценка:
Здравствуйте, 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++ — прямо чудеса. И да, в те времена ты был однозначно разумнее и адекватнее. )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.