Re[54]: «Собаку съел»
От: alex_public  
Дата: 13.02.17 13:39
Оценка: -1 :)
Здравствуйте, samius, Вы писали:

_>>Мне вот интересно, а ты способен вообще начать формулировать свои мысли с помощью технической терминологии, а не бытовой? А то понятие "поведение" же можно интерпретировать как угодно.

S>Мне вот интересно было, перейдешь ли ты на оценку способностей собеседника в явной форме? Благодарю что удовлетворил интерес.

Оценки пока не было, был лишь вопрос. Но судя по всему при подобном продолжение дискуссии уже будет недалеко и до оценки, отрицательной естественно.

_>>Например вот возьму я две одинаковые функции, определённые отдельно (перегрузка) для float и для double и скажу что у них абсолютно одинаковое поведение (скажем "сложение чисел с плавающей точкой"). С твоей позиции это получается параметрический полиморфизм? )))

S>С твоей интерпретацией слова "абсолютно" я уже знаком. Чем больше находится опровержений, тем более "абсолютна" становится твоя мысль. На мой взгляд, то что ты говоришь что поведение сложения чисел с плавающей точкой абсолютно одинаковое — еще не делает его таким для разных представлений чисел. Но говорить ты можешь.

Вот в том то и дело что могу. Более того, это будет абсолютно адекватное рассуждение, на которое ни один нормальный программист не возразит. Потому что понятие "поведение" не является каким-то термином и в одном из вариантов его применения к данной ситуации это будет справедливо.

_>>Я не ввожу разные полиморфизмы — классическое определение с безликим "код" вполне мне подходит. Я просто применяю его на двух отдельных уровнях размышления.

S>Так, что это тебе дало, кроме путаницы при общении и разногласии с источниками?

Разногласия никакого нет. В источниках указывается безликое "код", без всяких уточнений. А я лишь конкретизирую к чему конкретно я применяю это стандартное определение. А даёт это понимание реальных процессов, а не фантазий программиста.

_>>Потому что нет такого термина как поведение. Сформулируй свою мысль в технических терминах, а не так, чтобы его можно было интерпретировать как угодно, в зависимости от выгоды конкретной ситуации.

S>Ты же интерпретируешь. Я тебе уже писал, что именно подразумевают под поведением люди в научной среде. Но тебе все время хочется съехать то на поведение уровня текста, то на поведение уровня количества вызовов.

О, как интересно... Ещё совсем недавно ты писал, что "поведение" — это обычный бытовой термин. А сейчас уже оказывается, что какой-то вполне себе научный термин. Ну давай тогда, озвучь его чёткое определение. Его же не может не быть, если это реально технический термин, который все понимают однозначно.

_>>Вот любишь ты использовать скользкие понятия. Вот скажи мне, например в случае Хаскеля в его "execution model" входит тот факт, что в языке есть только функции одного аругмента (а запись вроде как функции нескольких просто является упрощённой записью последовательности нескольких вызовов)? Или же там наоборот указано, что данные объявления последовательностей вызовов в реальности превращаются в классические функции многих аргументов? )

S>В стандарте языка указано лишь как записывается function application, и что оно левоассоциативно. Остальное — детали частной реализации, не имеющие значения с точки зрения поведения. Но имеющие с точки зрения оптимизации, если ты хочешь об этом услышать. Впрочем, это не повод тащить эти детали на уровень языка.

Как мило. ))) Интересно, а что тогда по твоему входит в "execution model" скажем языка C++? )))

_>>И? ) Так какой тогда полиморфизм у apply? )

S>параметрический

Т.е. можно быть параметрически полиморфной и при этом иметь в глубинах своего стека вызовов ad hoc код? )

S>>>В то время, как equal_to и my_equal_to просто неотделимы от выполнения специального кода для каждого типа.

_>>Ну вообще то это не так даже для equal_to, т.к. мы можем определить единый для всех типов оператор равенства (понятно что смысла в подобном мало, но сам факт подобной возможности однозначен).
S>Определить — то мы можем, но и поведение изменится.

Конечно. Но при этом сама функция то не изменится. Получается, что при твоём подходе полиморфизм подобной функции определяется не по её личным свойствам, а по параметрам какого-то постороннего кода.

_>>А уж для my_equal_to это на 100% не верно, потому как в ней происходит вполне себе параметрически полиморфный вызов оператора равенства для типа eq и всё — что там происходит внутри этого оператора (разный код для разных типов или нет) my_equal_to не касается.

S>Это твое частное мнение, которое нечем подкрепить. Оно расходится, как минимум (кроме определений), с работами Wadler-а по введению классов типа, расходится с методами классификации, предлагаемыми хаскельвики.

А какое отношение имеют классы типов и хаскельвики к коду на C++? )

_>>Я надеюсь ты сам то понимаешь, что демонстрацией только подобных примеров ты ещё больше подчёркиваешь мою правоту? )

S>Нет, я воспитан в кругах, где для опровержения тезиса достаточно одного контрпримера. Особенно тезиса, сформулированного с помощью сочетания "абсолютно все". Но у тебя — ровно наоборот: каждый контрпример подчеркивает твою правоту.

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

_>>А как там внутри реализован eq — это уже его дело, про которое my_equal_to никак не в курсе. Т.е. я могу поменять отдельно реализацию eq как мне угодно и соответственно изменится поведение my_equal_to, даже если она уже собрана в отдельный бинарный модуль. Не видишь ничего общего с apply? )

S>Пока my_equal_to сравнивает значения разных типов специальным образом в соответствии с типом — ничего общего с apply у нее нет. Если my_equal_to начинает сравнивать значения разных типов универсальным образом, то у нее нет ничего общего со сравнением типов через оператор == с соответствующим поведением.

my_equal_to сравнивает значения универсальным образом — через оператор равенства типа eq. ) Похоже именно этот момент ты никак не можешь осознать. Хотя вроде как самая элементарная абстракция...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.