Size: a a a

2021 January 13

g

gsomix in F# Chat
Ну ладно.
источник

AT

Anton Ternavsky in F# Chat
Ну странно ИМХО, что надо обсуждать иммутабельность коллекцией. Они реально нужны, и не только в многопоточном коде, понятно что капитанствую. Хорошо, что появился вполне юзабельный ImmutableArray, до этого костылить приходилось.
источник

I

IdiocyAcceptance in F# Chat
Vlad Zaa
Зачем они пригодились бы? Немного не понял вопроса. В целом за тем же, зачем и все остальные иммутабельные коллекции.
Ну я думаю что человек не видит особой разницы между Array и ImmutableArray, ведь Array можно не мутировать!
источник

AT

Anton Ternavsky in F# Chat
IdiocyAcceptance
Ну я думаю что человек не видит особой разницы между Array и ImmutableArray, ведь Array можно не мутировать!
Не, там же больше различий, хотя похоже ты юморишь :)
источник

I

Igor in F# Chat
IdiocyAcceptance
Ну я думаю что человек не видит особой разницы между Array и ImmutableArray, ведь Array можно не мутировать!
😌👌
источник

I

IdiocyAcceptance in F# Chat
Это верно, но ты не получаешь хоть каких-то гарантий. Так компилятор заставляет людей следовать правилам, хотя бы на уровне *я пишу этот код, зная что никто без танцев с рефлексией или ансейфом не поменяет здесь значение*
источник

I

Igor in F# Chat
Я вообще не знал (забыл) что [||] мутабльный в f#)
источник

I

IdiocyAcceptance in F# Chat
Ну вот, ты видимо просто юзаешь изначально массив как иммутабельный
источник

I

IdiocyAcceptance in F# Chat
А это просто массив
источник

I

IdiocyAcceptance in F# Chat
Делай с ним что хочешь
источник

I

Igor in F# Chat
Anton Ternavsky
Не, там же больше различий, хотя похоже ты юморишь :)
Вот если он был, как persistent vector из кложи - вот это была бы бомба
источник

I

IdiocyAcceptance in F# Chat
Anton Ternavsky
Не, там же больше различий, хотя похоже ты юморишь :)
Ну стандартная библиотека действительно сглаживает эти различия. То есть ты постоянно при работе с модулем Array получаешь новые массивы
источник

g

gsomix in F# Chat
В FSharpx.Collections есть.
источник

I

Igor in F# Chat
Igor
Вот если он был, как persistent vector из кложи - вот это была бы бомба
А так польётся что у нас уже 4 типа коллекций (List/Array/Seq/IArray)
И они плохо композируюется в языке без тайпклассов
Консистентсность падает
источник

g

gsomix in F# Chat
Igor
Вот если он был, как persistent vector из кложи - вот это была бы бомба
Почему не RBB-Trees, например?
источник

I

Igor in F# Chat
gsomix
В FSharpx.Collections есть.
Ага юзаю уже в одном проектике.
Хотя вот сейчас задумался, не перейти ли на System.Collection.Immutable 🤔 но вроде у него хреновое API для f#
источник

I

IdiocyAcceptance in F# Chat
Igor
А так польётся что у нас уже 4 типа коллекций (List/Array/Seq/IArray)
И они плохо композируюется в языке без тайпклассов
Консистентсность падает
Ну коллекций больше на самом деле. Плюс я не вижу разницы как персистентный вектор сильно бы выделялся своей полезностью на этом фоне. То есть это просто одна из моря коллекций, не больше
источник

AT

Anton Ternavsky in F# Chat
Igor
Вот если он был, как persistent vector из кложи - вот это была бы бомба
Бомбой было бы, термоядерной, добавление struct в JVM и кложу, чтобы иметь детерменированную аллокацию в стеке либо плотным массивом в куче, а не когда припрет JIT компилеру либо толпой ссылкок в массиве в куче. Ох сколько можно было бы и на Java шустрого налабать, с предварительной аллокацией, да кешфрендли.
источник

I

IdiocyAcceptance in F# Chat
Anton Ternavsky
Бомбой было бы, термоядерной, добавление struct в JVM и кложу, чтобы иметь детерменированную аллокацию в стеке либо плотным массивом в куче, а не когда припрет JIT компилеру либо толпой ссылкок в массиве в куче. Ох сколько можно было бы и на Java шустрого налабать, с предварительной аллокацией, да кешфрендли.
Так работают над этим же
источник

AT

Anton Ternavsky in F# Chat
IdiocyAcceptance
Так работают над этим же
Ага, я эти разговоры с 2006 года слышал.
источник