Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, samius, Вы писали:
V>>>Без поддержки перегрузки ф-ий не бывает ad hoc.
S>>приведение — ad hoc.
V>Приведение чего куда?
Приведение типа значения к типу аргумента функции.
V>>>Рядом уже показал в общей классификации систем типов, что "полиморфизмом" называют лишь "зависимые ф-ии" и ничего более.
S>>Одна мономорфная функция + аргументы разного типа — уже полиморфизм.
V>Противоречишь сам себе.
V>Полиморфизм — это возможность подавать аргументы разного типа на одну и ту же ф-ию.
ИИИИ?
double Foo(double x)
{
return x;
}
// На одну и ту же ф-ию
Foo(42); // подали int
Foo(42f); // подали float;
Полиморфизм! Где противоречие?
V>>>Зависимые ф-ии умеют оперировать над аргументами разных типов.
V>>>В случае ad hoc полиморфизма в языке должна присутствовать принципиальная возможность определять разные версии одной и той же ф-ии для разных типов аргументов (или групп типов).
S>>Или вызывать одну и ту же функцию с разными типами.
V>Это и есть определение "полиморфизма". Не ad hoc и не параметрического, а как такового.
Я про пример вызова мономорфной функции с разными типами. По Стрэчи это ad-hoc, тк. работает для ограниченного множества типов и требует специального кода для приведения.
S>>>>А классификация (по Стрэчи) предыдущим разделом. Там же указано что ограничение типа аргумента классом типа — есть ad-hoc.
V>>>Это ошибка. Или самого Стрэчи или ты вырвал пример из контекста.
S>>Это классификация самого Стрэчи.
V>Можно целиком?
Можно, но не нужно сюда целиком раздел копировать.
V>Потому что есть вероятность, что будет как с тем отрывком из Хаскель-вики.
Я думаю что она стремится к 1.
S>>Поэтому вряд ли ты можешь ему указывать на ошибку в предложении называть зеленое зеленым.
V>И опять ты торопишься.
V>Если ты не правильно понял — я тебе покажу это.
Где-то месяц уже пытаешься
V>Если Стрэчи ошибается — я тоже легко это покажу.
Наверное, так же легко.
V>А вот эти вещи насчет "зеленого" давай оставим, плиз.
хорошо. Но если бы ты дал определение, а потом спустя 50 лет чел бы сказал что ты не прав, так не приведя альтернативного, то как бы ты отнесся к тому что ты бы стал не прав?
S>>А вот из контекста я мог вырвать. Но найди мне источник, где бы говорилось что ограничение типа аргумента классом типа — есть не ad-hoc, а параметрический.
V>ИМХО, ты всё еще пытаешься жульничать, хотя я уже несколько раз на это отвечал:
V>единичная ф-ия с аргументом конкретного типа или класса типов — это не есть признак ad hoc, но это и не есть признак отсутствия ad hoc.
Жаль, количество твоих ответов не переходит в качество.
V>И сколько раз мне еще надо повторить, что признаком ad hoc является наличие более одной "версии тела" одной и той же ф-ии?
Сколько угодно, пока ты не убедишь, что твоя классификация лучше чем у Стрэчи. Пока ни одного аргумента не было.
V>Ну это просто механика такая (одна из механик) реализации полиморфизма.
Да, одна из.
V>И сколько раз мне надо повторять, что признаком параметрического полиморфизма является возможность подавать на одну и ту же "версию тела" аргументы разных типов?
То же самое. Приведи классификацию, где это будет верно. А то получается что ad-hoc через приведение типа — это уже параметрический.
V>>>Потому что с т.з. лямбда-исчисления, у нас есть только ф-ии с одним аргументом.
S>>Вообще не понятно, причем тут число аргументов.
V>При том, что же следует считать "одной и той же ф-ией"?
V>Т.е. "что такое полиморфизм"?
V>Например, если разрешается перегрузка ф-ий по кол-ву аргументов, то ф-ии с разным кол-вом аргументов уже сложно считать "одной и той же ф-ией".
Хорошее замечание. Годится. Серьезно.
V>Именно поэтому лямбда-исчисление называет ф-ией такую ф-ию, у которой строго один аргумент. А все остальные варианты (кроме 0-ля аргументов) в рамках этого исчисления сначала приводятся к варианту с 1-м аргументом, а потом уже идут остальные рассуждения.
Давай рассуждать о функциях с одним аргументом — кортежем. Если так будет проще рассуждать. Но я не замечал что кто-то из нас (с тобой) пытается соскочить за счет числа аргументов.