Вопросы с тегом «immutability»

16
В какой момент неизменные классы становятся бременем?

При разработке классов для хранения вашей модели данных, которые я прочитал, может быть полезно создавать неизменяемые объекты, но в какой момент бремя списков параметров конструктора и глубоких копий становится слишком большим, и вы должны отказаться от неизменного ограничения? Например, вот...

14
Разве функциональная парадигма не слишком расходится с базовым оборудованием, чтобы быть в целом эффективной?

Вдохновленный вопросом от SO: /programming/6623391/how-to-gain-control-of-a-5gb-heap-in-haskell Это может быть долгий спор о многочисленных преимуществах и недостатках FP, но сейчас я бы хотел сузить сферу до основной эффективности FP на современном оборудовании. Тезис: Функциональная парадигма...

14
Как я должен отметить, что класс является неизменным в Java?

Недавно я наткнулся на то, насколько полезны неизменяемые объекты и что, например, если вы передаете элементы конструктору и ваш класс должен быть неизменным, вы должны скопировать эти элементы, если они сами не являются неизменяемыми. Это требует много проверок или знаний о моем проекте, потому...

13
Почему добавление к списку в Scala имеет O (n) сложность по времени?

Я только что прочитал, что время выполнения операции добавления для List(: +) растет линейно с размером List. Присоединение к a Listкажется довольно обычной операцией. Почему идиоматический способ сделать это состоит в том, чтобы предварительно добавить компоненты, а затем перевернуть список? Это...

13
Получи мою голову вокруг неизменности

Я новичок в объектно-ориентированном программировании, и одна концепция, на которую у меня ушло некоторое время, - это неизменность. Я думаю, что лампочка погасла прошлой ночью, но я хочу проверить: Когда я сталкиваюсь с утверждениями, что неизменяемый объект не может быть изменен, я озадачен,...

12
При программировании в функциональном стиле, есть ли у вас единое состояние приложения, которое вы вплетаете в логику приложения?

Как мне построить систему, которая имеет все следующее : Использование чистых функций с неизменяемыми объектами. Передайте в функцию только те данные, которые ей нужны, не более (то есть, нет большого объекта состояния приложения) Избегайте слишком большого количества аргументов для функций....

12
Каковы недостатки неизменяемых типов?

Я вижу себя использующим все больше и больше неизменяемых типов, когда не ожидается, что экземпляры класса будут изменены . Это требует больше работы (см. Пример ниже), но упрощает использование типов в многопоточной среде. В то же время я редко вижу неизменяемые типы в других приложениях, даже...

12
Можно ли эффективно представить мутацию объекта-графа с неизменяемыми состояниями?

Я практикую использование неизменного объекта в C ++. Моя личная цель - представить общий граф объектов (в куче) с помощью последовательности неизменяемых графов. Построить сам многовариантный граф не так уж сложно. Проблема в производительности. Для брутфорс-версий требуется полная копия графика,...

12
Являются ли неизменяемые / не имеющие состояния синглтоны плохими?

В последнее время произошла какая-то революция против синглетонов, но что с ними не так, если они не имеют гражданства? Я знаю разговоры о чрезмерном использовании и все ... это относится ко всему, а не только к одиночкам....

12
Функциональное программирование - неизменность

Я пытаюсь понять, как работать с неизменяемыми данными в FP (особенно в F #, но с другими FP тоже все в порядке) и сломать старую привычку полного состояния мышления (стиль ООП). Часть выбранного ответа на вопрос здесь повторила свой поиск любых написать окна вокруг проблем, которые решаются с...

11
Обходной путь для выполнения операций над двусвязными или циклическими структурами данных в языках с неизменяемыми данными

Я хотел бы узнать, как создавать графики и выполнять некоторые локальные операции над ними в Haskell, но этот вопрос не является специфическим для Haskell, и вместо графиков мы можем рассмотреть двусвязные списки. Вопрос: Каким был бы идиоматический или рекомендуемый способ реализации двусвязного...

11
Можем ли мы действительно использовать неизменяемость в ООП, не теряя все ключевые функции ООП?

Я вижу преимущества создания неизменных объектов в моей программе. Когда я действительно глубоко задумываюсь над хорошим дизайном для своего приложения, я часто, естественно, считаю, что многие из моих объектов неизменяемы. Часто приходит момент, когда я хочу, чтобы все мои объекты были...

10
Является ли гарантия неизменности оправданием для выставления поля вместо свойства?

Общее руководство по C # - всегда использовать свойство над открытым полем. Это имеет смысл - выставляя поле, вы раскрываете много деталей реализации. Со свойством вы инкапсулируете эту деталь, чтобы она была скрыта от потребления кода, а изменения реализации отделены от изменений интерфейса....

9
Действительно ли Haskell / Clojure не подходит для динамических систем, таких как моделирование частиц?

В предыдущих вопросах мне говорили, что функциональные языки программирования не подходят для динамических систем, таких как физический движок, главным образом потому, что мутация объектов обходится дорого. Насколько реалистично это утверждение и...

9
Неизменные структуры и глубокая иерархия композиции

Я разрабатываю приложение с графическим интерфейсом, интенсивно работаю с графикой - для примера вы можете думать об этом как о векторном редакторе. Очень заманчиво сделать все структуры данных неизменяемыми, чтобы я мог без особых усилий отменить / повторить, скопировать / вставить и многое...

9
что может пойти не так в контексте функционального программирования, если мой объект изменчив?

Я вижу преимущества изменчивых по сравнению с неизменяемыми объектами, такими как неизменяемые объекты, которые устраняют много трудностей при устранении неполадок в многопоточном программировании из-за общего и записываемого состояния. Напротив, изменяемые объекты помогают иметь дело с...