Re[32]: «Собаку съел»
От: vdimas Россия  
Дата: 17.02.17 06:55
Оценка:
Здравствуйте, samius, Вы писали:

V>>Т.е., ограничения аргумента необходимы для возникновения самой возможности перегрузки ф-ий, но недостаточны, чтобы считаться ad hoc.

S>Указание на то, где ad-hoc поддерживается посредством перегрузки функций — не является критерием того, что считать ad-hoc, а что нет. Это лишь пример.

Как раз здесь — это НЕОБХОДИМОЕ условие.
Без поддержки перегрузки ф-ий не бывает ad hoc.

Рядом уже показал в общей классификации систем типов, что "полиморфизмом" называют лишь "зависимые ф-ии" и ничего более.

Зависимые ф-ии умеют оперировать над аргументами разных типов.
В случае ad hoc полиморфизма в языке должна присутствовать принципиальная возможность определять разные версии одной и той же ф-ии для разных типов аргументов (или групп типов).


S>А классификация (по Стрэчи) предыдущим разделом. Там же указано что ограничение типа аргумента классом типа — есть ad-hoc.


Это ошибка. Или самого Стрэчи или ты вырвал пример из контекста.
Вполне возможно, что речь шла об одной специализации из многих — тогда возникает тот самый ad hoc.

Потому что с т.з. лямбда-исчисления, у нас есть только ф-ии с одним аргументом.
Ф-ии с множеством аргументов приводимы через карринг к ф-иям с одним аргументом.
"Чистые" ф-ии без аргументов эквивалентны константам.
Ф-ии отличаются по их идентификатором.
Итого, всё семейство перегруженных функций от одного аргумента считается одной и той же ф-ией.
Эти моменты надо помнить при чтении тех авторов, которые укушены лямбда-исчислением Черча.
Хотя, ИМХО, лямбда-исчисление — это уровень 0, быть им укушенным — стыдно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.