Часто в литературе Scala я встречаю фразу "абстракция", но я не понимаю намерения. Например,, пишет Мартин Одерски
Вы можете передавать методы (или "функции" ) в качестве параметров, или вы можете абстрагироваться от них. Вы можете указать типы в качестве параметров, или вы можете абстрагироваться от них.
В качестве другого примера, в "Устаревший шаблон наблюдателя" ,
Следствием наших потоков событий, являющихся первоклассными значениями, является то, что мы можем абстрагироваться над ними.
Я прочитал, что генераторы первого порядка "абстрактные над типами", а монад "абстрактные над конструкторами типов". И мы также видим такие фразы в документе Cake Pattern. Чтобы процитировать один из многих таких примеров:
Элементы абстрактного типа обеспечивают гибкий способ абстрагирования по конкретным типам компонентов.
Даже релевантные вопросы используют эту терминологию. "не может быть экзистенциально абстрактным по параметризованному типу..."
Итак... что означает "абстрактное представление"?