История изменений
Исправление hateyoufeel, (текущая версия) :
Всмыслий? Объявляешь нужные абстракции (интерфейсы), пишешь кот в терминах этих абстракций — вуаля, твой кот абстрактный (работает с любой говной, реализующей указанные абстракции).
Ну вот выше никто не смог это сделать. В основном, потому что в жабе нет higher-kinded types. Вот такой код в жабе просто не соберётся:
public class Foo<T> {
public T<String> bar() { return null; }
}
А эти ваши монады с эндофункторами — это баловство для учёных мужей.
да, поэтому простые рабочие парни это переизобретают с нуля на коленке каждые полгода под новым соусом. Как с теми же асинками вышло.
Исходная версия hateyoufeel, :
Всмыслий? Объявляешь нужные абстракции (интерфейсы), пишешь кот в терминах этих абстракций — вуаля, твой кот абстрактный (работает с любой говной, реализующей указанные абстракции).
Ну вот выше никто не смог это сделать.
А эти ваши монады с эндофункторами — это баловство для учёных мужей.
да, поэтому простые рабочие парни это переизобретают с нуля на коленке каждые полгода под новым соусом. Как с теми же асинками вышло.