Size: a a a

Elm Lang сообщество разработчиков

2019 May 19

VY

Vasiliy Yorkin in Elm Lang сообщество разработчиков
в общем, я не считаю, что массивы вместо списков в пурсе это одна из ключевых проблем :)
источник

VY

Vasiliy Yorkin in Elm Lang сообщество разработчиков
и они там не везде, есть purescript-arrays, purescript-lists, purescript-sequences, пользуешься тем, что подходит
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Vasiliy Yorkin
и они там не везде, есть purescript-arrays, purescript-lists, purescript-sequences, пользуешься тем, что подходит
Проблема с тем, что библиотеки используют именно массивы
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Никто не использует массивы в фп подефолту, это бредятина
источник

VY

Vasiliy Yorkin in Elm Lang сообщество разработчиков
ну, в purescript-arrays пакете так и написано
источник

VY

Vasiliy Yorkin in Elm Lang сообщество разработчиков
> This module is useful when integrating with JavaScript libraries which use arrays, but immutable arrays are not a practical data structure for many use cases due to their poor asymptotics.
> Depending on your use-case, you may prefer to use Data.List or Data.Sequence instead
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Vasiliy Yorkin
> This module is useful when integrating with JavaScript libraries which use arrays, but immutable arrays are not a practical data structure for many use cases due to their poor asymptotics.
> Depending on your use-case, you may prefer to use Data.List or Data.Sequence instead
Там буквально сказано что это отстой
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Последний абзац
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
И нет, это влияет очень сильно
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Это не какая-то миркооптимизация
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Это причина, почему фп вообще юзабельно по производительности
источник

VY

Vasiliy Yorkin in Elm Lang сообщество разработчиков
я понимаю
источник
2019 May 20

AK

Anton Kotenko in Elm Lang сообщество разработчиков
изредка индексы всё же бывают нужны и тогда это осознанное решение, фолдить с индексом и потом каждый раз бегать по списку — медленнее, чем просто использовать массив, он же всё равно типа иммутабельный
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Массив должен быть доступным вариантом, но не умолчательным
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Массив должен быть доступным вариантом, но не умолчательным
Да, об этом я и говорю
источник

VY

Vasiliy Yorkin in Elm Lang сообщество разработчиков
там дело не в пурскрипте, а в библиотеках, которые используют не оптимальные решения (вроде втыкания везде массивов вместо lists или sequences)
https://github.com/purescript/purescript-arrays/issues/13
https://groups.google.com/forum/#!topic/purescript/uF-SqphMeEg
Фил из 2015:
> I don't like the idea of reserving [] syntax for lists. [] is only supported now because Array is defined in the Prim module, which is baked into the compiler. I would rather we write Array for array, and List for list, explicitly in code.

а в бенчмарке этом, скриншот которого постоянно приводится как раз используются массивы, как специально https://github.com/krausest/js-framework-benchmark/blob/master/frameworks/non-keyed/halogen/src/Main.purs

https://twitter.com/paf31/status/961295001626882048
https://twitter.com/hdgarrood/status/961298692874625030
https://twitter.com/gb_r/status/961325767224381441

+ я бы не сказал, что в пурсе массивы "по умолчанию" (если только не считать`[] = Prim.Array`этим умолчанием, ведь : они выпилили в 2015)
источник

MP

Max P in Elm Lang сообщество разработчиков
а глобально разные версии elm как-то можно включать? типа как NVM для ноды (вижу пару репозиториев elm version manager, что вы используете?)

либо, что нужно, чтобы локально запускать... у меня
node_modules/.bin/elm-repl

после ввода какой-нибудь команды падает с ошибкой: elm-make: readCreateProcessWithExitCode: runInteractiveProcess: exec: does not exist
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
version manager нет, потому что версии новые настолько редко выходят, что люди успевают перейти полностью
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
можно через npm локальную версию для проекта иметь (не ставить глобально через -g)
источник

R:

Ryner :: () -> IO ❄️ in Elm Lang сообщество разработчиков
Max P
а глобально разные версии elm как-то можно включать? типа как NVM для ноды (вижу пару репозиториев elm version manager, что вы используете?)

либо, что нужно, чтобы локально запускать... у меня
node_modules/.bin/elm-repl

после ввода какой-нибудь команды падает с ошибкой: elm-make: readCreateProcessWithExitCode: runInteractiveProcess: exec: does not exist
А там много версий, что ли? 18 и 19
источник