Здравствуйте, lse, Вы писали:
lse>Здравствуйте, konsoletyper, Вы писали:
K>>Здравствуйте, lse, Вы писали:
lse>>>Вот-вот. А почему в фп невозможны ссылки? Скажем, каждый из друзей содержит константную ссылку на машину. Эта сслыка константная (именно константная, не путать с final), т е машина не может перекрашиваться. То бишь побочные эффекты невозможны. Так почему такие ссылки невозможны в фп?
K>>А потому, что нет разницы — ссылка она или копия.
lse>Хм, и в самом деле никакой. Только вот тут такой момент есть. Представим АТД, состоящий из двух друзей, у каждого из друзей есть копия машины вместо ссылки. Тогда при изменении цвета машины нужно будет создать новый экземпляр АТД, и не забыть установить цвет машины в двух местах — у каждого из друзей. А в случае ссылки достаточно было бы изменить цвет машины один раз в одном месте. Понятно конечно, что такой подход чреват побочными эффектами, но все же в этом отдельном случае ручками поменьше работать приходится. Я уже не говорю о том, что памяти в 2 раза больше нужно для хранения экземпляра такого АТД (хотя реализация может в самом деле попытаться оптимизировать это).
Это всё ООП-рассуждения. Что у тебя в предметной области-то, одна машина? Тогда тупл такой
(Friend, Friend, Car)
А если две разных — работай с туплом туплов
((Friend,Car), (Friend, Car))
lse>PS пример машинами и друзьями дурацкий, ибо такой АТД нафиг не нужен. Но вот с кажем, моделирование конкретного технического объекта — например, электрической схемы.
И что? Не поддаётся декларативному описанию?