Re[61]: «Собаку съел»
От: samius Япония http://sams-tricks.blogspot.com
Дата: 22.02.17 21:17
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, samius, Вы писали:


_>>>Ты похоже уже забыл, что я тебе уже писал. Для того, чтобы посмеяться над идеей каррирования в машинных кодах не надо ничего знать про какие-то реализации Хаскеля и т.п. Это смешно само по себе, если знать устройство современных процессоров (попробуй просто представить себе что потребуется сгенерировать компилятору и как будет выглядеть вызов всего этого скажем в случае функции 5-и переменных). И то, что ты по прежнему этого не понимаешь, прямо поражает. Ты вообще в курсе таких вещей как аппаратный стек, пролог и эпилог функции и т.п. базовые вещи, знакомые каждому студенту? )

S>>Базовые вещи, которые должны быть знакомы каждому студенту, не вылетевшему в первый год — это кванторы. Вышка у нас входит в программу-минимум высшего образования даже для политологов. Тут у тебя опять использован квантор, хотя мне известно не так много специальностей, где бы читали про аппаратный стек, пролог и эпилог функции. Я думаю что оно весьма и весьма ограничено. Так, что ты снова демонстрируешь пробелы с пониманием кванторов.

_>Я думаю, что каждый читающий данный текст прекрасно понял, что я имел в виду студентов профильного этому форуму направления, которые с самого начала в обязательном порядке получают базовые знания (а большего и не требуется, чтобы не совершить ошибку, которую сделал ты) о функционирование современных ЦПУ. Более того, я думаю что и ты это прекрасно понял, а все твои смешные попытки придраться к формулировкам являются всего лишь следствием попытки скрыть проявившуюся некомпетентность.

Спешу тебя обрадовать, то что ты думаешь — не соответствует действительности. Я читал твой текст, но не понял.
А думаешь ли ты заодно что КАЖДЫЙ читающий данный текст так же понял, какие именно направления ты считаешь профильными этому форуму? Ну так, на всякий случай. В этот раз можно не думать — я не понял. Объяснишь?
А то я почти 20 лет думал что закончил профильный ВУЗ и где-то с 2005-го думал что направление было профильное этому форуму. Но вот беда, откуда не ждал, функционирование вообще никаких ЦПУ в моем ВУЗе не читали, и я по твоей милости оказался гуманитарием...

_>Да, и кстати насчёт "вышки". Я что-то не помню ни одного технического факультета (во всяком случае там, где учился я, в МГУ) в котором был бы такой предмет. У нас помнится был мат.анализ, несколько видов алгебр, несколько видов геометрий, дифуры, интуры с вариационным исчислением, тфкп, тер.вер со статистикой, функциональный анализ, теория групп и т.п. А предмет с названием "высшая математика" — это разве что у гуманитариев каких-нибудь может быть, которым требуется только обзорный курс.

Ровно об этом я и написал. Но и в обзорном курсе используются кванторы. Разве, может, без значков.
_>И то, что ты знаешь именно его наводит на определённые мысли — может ты как раз из тех самых политологов?. ))) Тем более что и стиль ведения дискуссии у тебя явно подходящий: для тебя важнее не суть, а формальность. )
Знаю именно его? Кто тебе сказал что я знаю именно его? Определения ты, видимо, так же внимательно читаешь.

Кстати, там, где я учился (УРГУ, матмех) ты бы мат.анализ не сдал с таким отношением к кванторам.

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

S>>А для чего мне представлять именно свое определение? Свое понимание (и не только мое) этого вопроса — я уже излагал. Указывал, где посмотреть на специфику для C++. Мало? Извини, определения поведения функции в аппаратных стеках у меня нема.

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


Вот ты и попался. Судя по тому что ты пишешь, ты и пропускал как раз не читая все формулировки, где использовались не вполне точно определенные понятия. Карделли (may behave, works uniformly), Пирс (behave the same)...

S>>Видишь, реализации! А в терминах поведения они существенно отличаются. apply ведет себя неотличимо от любой (здесь я использовал квантор всеобщности, если ты когда-нибудь с ними таки ознакомишься) функцции f. А my_equal_to ведет себя неотличимо от eq для каждого типа, для которого определен eq. А значит, специальнымм образом на ограниченном наборе. Но ты гляди в аппаратный стек, что бы не ошибиться. Оттуда, наверное, вообще все функции полиморфными кажутся


_>1. В одних твоих сообщения было указано, что apply — это параметрически полиморфная функция, без всяких оговорок. А в других (вот как сейчас например) ты пишешь, что поведение apply полностью определяется функцией f (которая естественно может быть и ad hoc). Так как с тобой вести нормальную дискуссию, если у тебя позиция скачет от одного сообщения к другому? )

Я не заметил скачка. Вот у тебя map чистая или нет? Или ты будешь скакать в зависимости от того, что в нее передать?

_>2. Определение eq лежит вне определения функции my_equal_to. Соответственно если ты привлекаешь его устройство для определения свойств my_equal_to, то это значит что ты постулируешь тот факт, что для определения вида полиморфизма некого кода абсолютно недостаточно ни знания исходного кода (и даже вместе с моделью вычисления), ни знания машинного кода. А требуется знание внутреннего устройства некого постороннего кода. Правильно?

Неправильно. Я ничего не постулирую. Это только ты делаешь предположение что я постулирую.

Вижу, тебя в МГУ не научили еще и термину "постулат".
Или спортсмен, или блатота. Или МГУ уже не тот, как мне говорили.

_>3. Рассмотрим такой простейший код:

_>
_>auto my_equal_to2=[](bool x, eq a, eq b) {return x||a==b;};
_>auto f=[](bool x, eq a, eq b) {return my_equal_to2(true, a, b);};
_>auto g=[](bool x, eq a, eq b) {return my_equal_to2(false, a, b);};
_>

_>Я правильно понимаю, что с твоих "поведенческих" понятий функция f получается параметрически полиморфной, а функция g ad hoc полиморфной? И соответственно тогда вопрос, какой с твоей точки зрения является функция my_equal_to2? )
f не получается ПП, уже потому что "ad-hoc polymorphic function will only work on a finite set of different and potentially unrelated types". Понятие "work" определить?
g — AH, my_equal_to2 — AH.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.