LINUX.ORG.RU

Хаскеллист разочаровался в иммутабельности

 ,


0

5

http://gregorycollins.net/posts/2011/06/11/announcing-hashtables

While Haskell people prefer to use immutable/persistent data structures in their programs most of the time, there are definitely instances in which you want a mutable hash table: no immutable data structure that I know of supports O(1) inserts and lookups, nor is there an immutable data structure that I know of which can match a good mutable hash table for space efficiency. These factors are very important in some problem domains, especially for things like machine learning on very large data sets.

но адепты всё равно продолжают мастурбировать на иммутабельные структуры, а особо отбитые — ещё и оптимизировать их

f1u77y ★★★★
()

Неплохо, ты научился жёлтым заголовкам. Из тебя неплохой журналист выйдет.

x3al ★★★★★
()

These factors are very important in some problem domains, especially for things like machine learning on very large data sets.

anonymous
()

Хаскеллист разочаровался в иммутабельности

here are definitely instances in which you want a mutable hash table

Похоже, анонiмус научился троллить не только тупостью, но и передергиванием.

tailgunner ★★★★★
()

лоровцы разочаровались в английском анонiмуса

Aswed ★★★★★
()

Программист повзрослел и осознал что в computer science нету простых рецептов вроде «используй X и будет тебе счастье», а работа заключается в том чтобы думать, а не верить в религии

vertexua ★★★★★
()

а я в жизни никогда не пользовался иммутабельными структурами... ну кроме констант... зачем они надо?

unt1tled ★★★★
()
Ответ на: комментарий от x3al

писал на яве, но по идее строки все равно можно мутабить, это не важно, что под капотом жаба делает новую строку, на это всем по

unt1tled ★★★★
()
Ответ на: комментарий от unt1tled

а я в жизни никогда не пользовался иммутабельными структурами... ну кроме констант... зачем они надо?

Затем же, зачем надо избегать глобальных переменных. Чем меньше мутабельное пространство, тем легче разобраться в том, что происходит.

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

Чем меньше мутабельное пространство, тем легче разобраться в том, что происходит.

это очень странное заявление... ну ладно, у тебя звезд больше, наверное ты лучше знаешь

unt1tled ★★★★
()
Ответ на: комментарий от unt1tled

в языке, где нет понятия «переменная», ога

Ты уверен в этом?

hateyoufeel ★★★★★
()
Ответ на: комментарий от Manhunt

надо избегать глобальных переменных

А при чем тут глобальность?

sadlinuxoid
() автор топика
Ответ на: комментарий от f1u77y

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

f1xmAn ★★★★★
()
Ответ на: комментарий от f1xmAn

емнип, как раз многие хачкилисты используют хачкиль для всего и вся

f1u77y ★★★★
()
Ответ на: комментарий от unt1tled

в языке, где нет понятия «переменная», ога

там переменные в мат. смысле

anonymous
()

some problem domains

Он это понимает, а ты нет, поэтому любую проблему пытаешься натянуть на js и Ъ-ООП.

winlook38 ★★
()

Anonimous снова вернулся.

Ты все уроки сделал?

bookman900 ★★★★★
()

Мутабельные структуры данных в хаскеле есть, известный пример — State Monad. Толко анонiмусу не говорите — так веселее.

iVS ★★★★★
()
Последнее исправление: iVS (всего исправлений: 1)
Ответ на: комментарий от f1u77y

и как это обосновывает ненужность оптимизации иммутабельных структур?

Manhunt ★★★★★
()
Ответ на: комментарий от slovazap

man ссылочная целостность, лошара.

И лог свой ты заебешься делать, и все равно все сделаешь неправильно.

anonymous
()
Ответ на: комментарий от f1xmAn

И как же в джаве мутировать строки?

Очень просто:

        final String str = "Hello";
        Field valueField = String.class.getDeclaredField("value");
        valueField.setAccessible(true);
        char[] strValue = (char[]) valueField.get(str);
        char[] newValue = Arrays.copyOf(strValue, strValue.length + 6);
        System.arraycopy(" world".toCharArray(), 0, newValue, strValue.length, 6);
        valueField.set(str, newValue);
        System.out.println(str);

Кто ещё скажет, что в жаве не мутабельные строки?

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Deleted

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

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Я ждал этого ответа. Грязный хак. Апи String не мутирует объект.

f1xmAn ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.