Re[4]: Мнение: объектно-ориентированное программирование — к
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.09.19 14:12
Оценка: 4 (1)
Здравствуйте, Went, Вы писали:

W>То есть, говоря простым языком, каждая версия Game (или вложенные в нее объекты в отдельности) будет хранить некую старую версию и список внесенных изменений, и запрос актуального состояния будет брать базовую и "применять" последние изменения. Нечто вроде репозитория?


Необязательно. Список это например пара значение-хвост. Достаточно все операции, включая удаление, реализовать через создание нового списка. На этой же модели можно сделать целую кучу структур данных, например — деревья. Но вот хеш таблицу уже нельзя. Вместо этого делают адское дерево, где асимптотика похожа на хештаблицу и реализацию которого может понять только упоротый математик

I>>1 для многих операций крайне трудно добиться внятной асимптотики, сравнимой с обычными мутабельными структурами

I>>2 для многих операций по словами Окасаки он так и не смог найти годной реализации
W>Да я даже не за перфоманс переживаю. Как быть с разнообразными АПИ, с которыми плотно работает любая реальная программа? Они же по любом не "чистые", имеют "мутабельное внутреннее состояние", а, значит, все функции ФЯП, которые будут к ним обращаться, будут тоже "грязными" и вся затея со свободным порядком, параллельностью и ленивостью идет строго лесом? Или я что-то не понимаю в корне?

Все правильно. Все используемые АПИ должны быть переделаны. Или, как вариант, нужен слой изоляции. Проблема глубже — на таком подходе невозможно сделать публичный API, что бы клиенты могли быть любыми — хоть чистыми, хоть грязными. Нужно переприсваивание куда нибудь перепрятывать.

Пока что функционалисты такую вещь как DOM осилить не могут. Слишком трудно реализовать иммутабельный вариант. Теоретически это возможно, на практике заявления вида "а мы всё равно круче". Вот пример http://rsdn.org/forum/philosophy/7551421.1
Автор: samius
Дата: 26.09.19


Разумеется, это все про абсолютную чистоту. Если комбинировать подходы, что радикальный функционалисты не приемлют, получается очень даже неплохие результаты.
Отредактировано 27.09.2019 14:23 Pauel . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.