Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, samius, Вы писали:
S>>Мне вот интересно было, перейдешь ли ты на оценку способностей собеседника в явной форме? Благодарю что удовлетворил интерес.
_>Оценки пока не было, был лишь вопрос. Но судя по всему при подобном продолжение дискуссии уже будет недалеко и до оценки, отрицательной естественно.
Вах, баюс
S>>С твоей интерпретацией слова "абсолютно" я уже знаком. Чем больше находится опровержений, тем более "абсолютна" становится твоя мысль. На мой взгляд, то что ты говоришь что поведение сложения чисел с плавающей точкой абсолютно одинаковое — еще не делает его таким для разных представлений чисел. Но говорить ты можешь.
_>Вот в том то и дело что могу. Более того, это будет абсолютно адекватное рассуждение, на которое ни один нормальный программист не возразит. Потому что понятие "поведение" не является каким-то термином и в одном из вариантов его применения к данной ситуации это будет справедливо.
Опять кванторы, смысл которых ты не постиг.
S>>Так, что это тебе дало, кроме путаницы при общении и разногласии с источниками?
_>Разногласия никакого нет. В источниках указывается безликое "код", без всяких уточнений. А я лишь конкретизирую к чему конкретно я применяю это стандартное определение. А даёт это понимание реальных процессов, а не фантазий программиста.
Отсюда можно сделать вывод: твое понимание реальных процессов зависимо от способа трактовки терминологии. Гламурненько.
_>>>Потому что нет такого термина как поведение. Сформулируй свою мысль в технических терминах, а не так, чтобы его можно было интерпретировать как угодно, в зависимости от выгоды конкретной ситуации.
S>>Ты же интерпретируешь. Я тебе уже писал, что именно подразумевают под поведением люди в научной среде. Но тебе все время хочется съехать то на поведение уровня текста, то на поведение уровня количества вызовов.
_>О, как интересно... Ещё совсем недавно ты писал, что "поведение" — это обычный бытовой термин. А сейчас уже оказывается, что какой-то вполне себе научный термин. Ну давай тогда, озвучь его чёткое определение. Его же не может не быть, если это реально технический термин, который все понимают однозначно.
Я не говорил, что это строго научный термин. Я говорил что под ним обычно понимают. И не говорил, что однозначно. Скорее, схожим образом (кроме тебя). Терпение. Чуть ниже.
S>>В стандарте языка указано лишь как записывается function application, и что оно левоассоциативно. Остальное — детали частной реализации, не имеющие значения с точки зрения поведения. Но имеющие с точки зрения оптимизации, если ты хочешь об этом услышать. Впрочем, это не повод тащить эти детали на уровень языка.
_>Как мило. ))) Интересно, а что тогда по твоему входит в "execution model" скажем языка C++? )))
А зачем по-моему, если ты можешь открыть и почитать? Вот открой спецификацию C++, обещаю, много чего найдешь нового. И про "execution model", которая там называется "Program execution", и про абстрактную машину, и даже про поведение кода (там "observable behavior of the program"). Но там не про вообще, а про конкретно C++ модели, машину и поведение. Авторы книг, откуда я цитировал, использовали более обобщенные понятия (более интуитивные).
Так вот, если ты не открывал спецификацию даже С++ (за который ты тут пилишь), или открывал, но она прошелестела мимо, о каком понимании реальных процессов идет речь вообще? Это риторический вопрос. Не трудись отвечать.
_>Т.е. можно быть параметрически полиморфной и при этом иметь в глубинах своего стека вызовов ad hoc код? )
Мы это уже проходили неоднократно. Отмотай назад, мое мнение не изменилось. А желание тебе разжевывать — поубавилось.
S>>>>В то время, как equal_to и my_equal_to просто неотделимы от выполнения специального кода для каждого типа.
_>>>Ну вообще то это не так даже для equal_to, т.к. мы можем определить единый для всех типов оператор равенства (понятно что смысла в подобном мало, но сам факт подобной возможности однозначен).
S>>Определить — то мы можем, но и поведение изменится.
_>Конечно. Но при этом сама функция то не изменится. Получается, что при твоём подходе полиморфизм подобной функции определяется не по её личным свойствам, а по параметрам какого-то постороннего кода.
О, только что у apply переданный параметром код был не посторонний.
S>>Это твое частное мнение, которое нечем подкрепить. Оно расходится, как минимум (кроме определений), с работами Wadler-а по введению классов типа, расходится с методами классификации, предлагаемыми хаскельвики.
_>А какое отношение имеют классы типов и хаскельвики к коду на C++? )
А причем вообще С++? Когда ты вклинился, в контексте темы "инлайна параметрических компареров" никакого C++ не было.
S>>Нет, я воспитан в кругах, где для опровержения тезиса достаточно одного контрпримера. Особенно тезиса, сформулированного с помощью сочетания "абсолютно все". Но у тебя — ровно наоборот: каждый контрпример подчеркивает твою правоту.
_>Мне не интересно играть в подобные игры для детей. Я тебя попросил продемонстрировать хоть одну реальную функцию, удовлетворяющую твоим критериям параметрического полиморфизма. И я думаю ты прекрасно понял о чём речь. Но судя по тому, что я сейчас вижу, ты просто не можешь этого сделать.
Я продемонстрировал вместо "хоть одной" даже две, если не ошибаюсь. Чем должен был поставить тебя в неловкое положение, но ты его сам делаешь еще более неловким, продолжая употреблять кванторы, суть которых пронеслась мимо твоего сознания, как, похоже, и многое другое.
_>>>А как там внутри реализован eq — это уже его дело, про которое my_equal_to никак не в курсе. Т.е. я могу поменять отдельно реализацию eq как мне угодно и соответственно изменится поведение my_equal_to, даже если она уже собрана в отдельный бинарный модуль. Не видишь ничего общего с apply? )
S>>Пока my_equal_to сравнивает значения разных типов специальным образом в соответствии с типом — ничего общего с apply у нее нет. Если my_equal_to начинает сравнивать значения разных типов универсальным образом, то у нее нет ничего общего со сравнением типов через оператор == с соответствующим поведением.
_>my_equal_to сравнивает значения универсальным образом — через оператор равенства типа eq. ) Похоже именно этот момент ты никак не можешь осознать. Хотя вроде как самая элементарная абстракция...
Ну раз так, то перегрузка оператора == тоже сравнивает значения универсальным образом: через оператор ==. (Это называется противоречием. Их вроде бы даже раньше школьная программа включала. Жаль, что оно лишь убедит тебя в собственной правоте)