
Denis
21.08.2017
18:07:45
фу грязь
сабжекты не по делу

Artsiom
21.08.2017
18:08:34
фу грязь
покажи как лучше, что мог - я сбросил (

Denis
21.08.2017
18:08:47
не надо сабжекты

Google

Denis
21.08.2017
18:09:10
задача поставлена не корректно
условие не особо понимаемо

andretshurotshka?❄️кде
21.08.2017
18:57:02
https://github.com/pelotom/unionize

.
22.08.2017
11:20:51
подскажите, реализует ли ramda или какая-то другая библиотека data sharing?

? animufag ?
22.08.2017
11:21:58
что это

.
22.08.2017
11:22:53
This property of immutable data is called data sharing or just
sharing . Data sharing of immutable data often lets us implement functions more
efficiently; we can always return immutable data structures without having to
worry about subsequent code modifying our data. There's no need to
pessimistically make copies to avoid modification or corruption
В силу ряда обстоятельств нужна иммутабельная структура, которую, вероятно, придётся использовать активно. Очень не хотелось бы въехать в пня или поймать боттлнек на пересоздании.

? animufag ?
22.08.2017
11:26:04
интересно как это делается

.
22.08.2017
11:27:37
чаще всего на персистентных структурах данных, попробую найти линк.
http://www.codecommit.com/blog/scala/implementing-persistent-vectors-in-scala
http://www.codecommit.com/blog/scala/more-persistent-vectors-performance-analysis

Denis
22.08.2017
11:29:22
в js только такое пока вроде https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer

.
22.08.2017
11:31:01

Google

Denis
22.08.2017
11:31:38
http://2ality.com/2017/01/shared-array-buffer.html

.
22.08.2017
11:49:15
не, это похоже немного не то
основная идея получить производительность вставки в произвольную позицию элемента сопоставимую с мутабельными структурами без необходимости копировать изначальную структуру данных.
я нашёл ответ на свой вопрос. Если кому-то пригодится то персистентные структуры реализованы в immutable.js . всех свойств не реализуют, но это самое близкое, что я нашёл. Спасибо за участие.

Nikita
22.08.2017
12:10:52
что именно не реализовано?

andretshurotshka?❄️кде
22.08.2017
12:12:03
так в immutablejs персистентная структура вроде

.
22.08.2017
12:12:07
я не нашёл сложение двух immutable Map . т.е. мерж двух деревьев, но мне это не нужно, так что думаю всё отлично

andretshurotshka?❄️кде
22.08.2017
12:12:21

Nikita
22.08.2017
12:17:01
это разве не оно https://facebook.github.io/immutable-js/docs/#/Map/mergeDeep ?

.
22.08.2017
12:17:31

Nikita
22.08.2017
12:19:03
дока не очень удобная

Denis
22.08.2017
12:23:08

Nikita
22.08.2017
12:24:15
только она со стандартными структурами данных работает
а тут попросили что-то со structural sharing

.
22.08.2017
12:27:56
в List не нашёл механики head, tail только через shift

Nikita
22.08.2017
12:31:15
это в Collection

.
22.08.2017
12:31:46
А, всё. Пойду раскуривать доку. Ещё раз спасибо.

Nikita
22.08.2017
12:32:03
пожалуйста :)

Vadim
22.08.2017
16:53:47

Yung
22.08.2017
17:29:06
Там вроде прямая реализация подобной штуки из кложуры

Google

Nikita
22.08.2017
17:30:26
Mori три года не апдейтился
Ан нет

Дмитрий
22.08.2017
17:31:09
Да, mori rip

Nikita
22.08.2017
17:31:14
Всего лишь два :)

Yung
22.08.2017
17:31:22
Пичалька

Nikita
22.08.2017
17:32:15
И вроде он весь рантайм cljs тащил
Для ноды это норм, а вот в браузере уже не очень

Дмитрий
22.08.2017
17:47:55
Ну в общем кроме immutable, seamless-immutable и нескольких других выбрать больше и не из чего
Персистентная и в то же время быстрая струткура — это реально довольно сложно
Там в основе неслабый такой концепт — структура данных hash trie
Я хотел своё что-нибудь такое сделать, но не могу сказать, что далеко продвинулся)
Самый главный профит от hash trie — скорость, которая может быть даже выше, чем у стандартных структур языка)
Операции вставки пары ключ-значение и поиск по ключу — О(1)

Nikita
22.08.2017
17:53:46
Seamless без structural sharing

Дмитрий
22.08.2017
17:54:04
А, может быть. Фигово тогда(

Nikita
22.08.2017
17:54:19
Да, в итоге имеем ровно один вариант :)

Denis
22.08.2017
17:55:09
вспомнил о https://gist.github.com/jlongster/bce43d9be633da55053f

Дмитрий
22.08.2017
17:59:25
Хочу заимплиментить либу по этому пейперу

kana
22.08.2017
19:06:36
мори же можно оживить, если просто пересобрать кложур.коре и заменить файл

? animufag ?
22.08.2017
19:13:46
странно. пейпер, а написано вроде человеческим языком
ну или по крайней мере структурировано

Дмитрий
22.08.2017
19:43:31

Google

Дмитрий
22.08.2017
19:43:45

Nikita
22.08.2017
19:46:57
я очень хочу js-first datascript
с иммутабельностью внутри и более-менее естественным для JS апи снаружи
но у меня знаний и опыта хватает только что б его хотеть :)

kana
22.08.2017
19:48:22
Даже не знаю, как на жс сделать такую же читаемую едсл для запросов в датомик

Nikita
22.08.2017
19:48:36
это да
нетривиальная задача

Vadim
22.08.2017
23:36:37
Вопрос по flow. Я никогда не юзал еще flow. Скажите в нем проще типизировать рамдовские пайпы и компоузы?

Admin
ERROR: S client not available

Vadim
22.08.2017
23:36:59
По сравнению с ts конечно )
Есть ли вообще какой-то выигрыш для либ типа рамды?

? animufag ?
22.08.2017
23:40:30

Vadim
22.08.2017
23:41:06
Спасибо! )

? animufag ?
22.08.2017
23:44:59
но профит есть, но я некомпетентен. думаю сам представляешь что в тс всё сливается в any и подразумевается что такова природа фронтенда

Vadim
22.08.2017
23:59:36
Пока что меня добивает лишь геморройность типизации структуры цепочек, типа пайпов. В итоге, я просто типизирую лишь возвращаемое значение, подразумевая что внутри цепочки все работает “как надо” )
Видимо эту часть контроля в любом случае необходимо будет переносить в тесты

? animufag ?
23.08.2017
00:12:32
хмм ты сам пишешь типы для рамдовских функций? это спортивный интерес?

Vadim
23.08.2017
00:18:17
В смысле? Я же не тайпинги переопределяю. Я типизирую что на входе и выходе

Дмитрий
23.08.2017
00:20:29
Это не природа фронтенда, это, блин, природа тайпскрипта, не имеющая с flow абсолютно ничего общего

Vadim
23.08.2017
00:22:45
Ну например внутри пайпа есть разного рода evolve и pick, и еще всякая хрень. Для каждого из этих шагов приходится описывать интерфейс того, что они вернут. Это охрененный геморрой.
Хотелось бы автоматики )

Google

Vadim
23.08.2017
00:25:02
Что б ты описал только интерфейс входящего объекта, и компилятор сам понимал во что он преобразуется после evolve и других преобразований. ) Какие там появятся поля, какие исчезнут, и у каких изменится тип.

Дмитрий
23.08.2017
00:41:26
Для этого придётся слегка поменять сам подход к коду)
Причём даже с точным указанием какие именно типы ошибок возможны на этом участке кода)
Короче, вот такой вот чейн как правило типизируется гораздо легче и проще чем какой-либо другой код)

Sergey
23.08.2017
17:52:05
Ребят, посоветуйте что-нибудь почитать про фп в жс для нубов https://github.com/fantasyland/fantasy-land/blob/master/README.md не вывожу, там операторы какие-то не жсовские, типо ::, и примеров мало

Таймураз
23.08.2017
17:52:51

Дмитрий
23.08.2017
17:53:05
Саморекурсивная спека FL — это лучший способ быстро свалить в ужасе с этой темы)

Sergey
23.08.2017
17:53:18

Таймураз
23.08.2017
17:53:19
А пока- Gin & Tonic time!

Sergey
23.08.2017
17:54:03

Таймураз
23.08.2017
17:54:16

Дмитрий
23.08.2017
17:54:56
Самый лучший гайд что я встречал кстати целиком посвящён именно разъяснению смысла FL
Но увы он уже не совсем для нубов, не могу похвастаться что его полностью понял)

Sergey
23.08.2017
17:55:28

Denis
23.08.2017
17:55:34
ненужно

Дмитрий
23.08.2017
17:55:39
Но инсайды пошли прямо с первой же статьи