Size: a a a

Scala User Group

2020 December 05

VM

Vladimir Morozov in Scala User Group
Mikhail
Не очень корректный вывод (ты же в случае 5 * (1 + 3) - скобки ставишь не для того, чтобы проще было - а потому что без них не корректно из-за нарушения порядка, который в этом контексте имеет значение - но только для тебя, а не для компилятора)

Но как минимум стоит fata-warnings добавить, чтобы явно не компилировалось - хотя и он тоже не на сто процентов спасает - есть такие сложные ситуации, которые и варнингов не дают - но там уже очень сильно с типами надо намудрить.

Код который скала для тебя сделала без твоих скобок - работает корректно, а твои ожидания - были не корректны.
Так скзаать for the record в итоге проблема решилась после прочтения https://docs.scala-lang.org/tour/operators.html блок Precedence
источник
2020 December 07

ИК

Иван Калининский... in Scala User Group
Всем привет!

Я делаю расширение коллекций, чтобы синхронно получить результат после выполнения функции в несколько потоков. Основная цель - удобным способом избавиться от параллельных коллекций без доп. зависимостей. Вот что получилось с помощью SO (Duration.Inf на период PoC, по готовности заменю конечным временем) :
https://scastie.scala-lang.org/AV38JUA4QHS2dJh1k1Dbeg

Проблема в том, что это расширение не применимо к Array, а именно Array часто используется в приложении. Что лучше сделать и как сделать:
- переписать класс, чтобы компилятор смог генерализовать в том числе и Array,
- или заменить там, где это нужно, Array на другой тип коллекций (скорее всего List), и, если так, то какой тип лучше выбрать (может Vector заметно производительнее)? Scala 2.11.8
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Иван Калининский
Всем привет!

Я делаю расширение коллекций, чтобы синхронно получить результат после выполнения функции в несколько потоков. Основная цель - удобным способом избавиться от параллельных коллекций без доп. зависимостей. Вот что получилось с помощью SO (Duration.Inf на период PoC, по готовности заменю конечным временем) :
https://scastie.scala-lang.org/AV38JUA4QHS2dJh1k1Dbeg

Проблема в том, что это расширение не применимо к Array, а именно Array часто используется в приложении. Что лучше сделать и как сделать:
- переписать класс, чтобы компилятор смог генерализовать в том числе и Array,
- или заменить там, где это нужно, Array на другой тип коллекций (скорее всего List), и, если так, то какой тип лучше выбрать (может Vector заметно производительнее)? Scala 2.11.8
источник

М

Михаил in Scala User Group
Иван Калининский
Всем привет!

Я делаю расширение коллекций, чтобы синхронно получить результат после выполнения функции в несколько потоков. Основная цель - удобным способом избавиться от параллельных коллекций без доп. зависимостей. Вот что получилось с помощью SO (Duration.Inf на период PoC, по готовности заменю конечным временем) :
https://scastie.scala-lang.org/AV38JUA4QHS2dJh1k1Dbeg

Проблема в том, что это расширение не применимо к Array, а именно Array часто используется в приложении. Что лучше сделать и как сделать:
- переписать класс, чтобы компилятор смог генерализовать в том числе и Array,
- или заменить там, где это нужно, Array на другой тип коллекций (скорее всего List), и, если так, то какой тип лучше выбрать (может Vector заметно производительнее)? Scala 2.11.8
Метод seq вы реализовали сами вместо библиотечного Future.traverse, потому что принципиально важно иметь ограничение в N потоков?
источник

М

Михаил in Scala User Group
А, у него сигнатура другая
источник

ИК

Иван Калининский... in Scala User Group
Михаил
Метод seq вы реализовали сами вместо библиотечного Future.traverse, потому что принципиально важно иметь ограничение в N потоков?
Да, ограничение очень важно
источник

Oℕ

Oleg ℕizhnik in Scala User Group
А ограничение на 11 скалу тоже?
источник

ИК

Иван Калининский... in Scala User Group
в хадуп другую не завезли(
источник

ZM

ZLoyer Matveev in Scala User Group
Иван Калининский
в хадуп другую не завезли(
в хадупе вродь никакой не было
источник

ZM

ZLoyer Matveev in Scala User Group
или у вас по нодам руками 11ая раскидана?
источник

ИК

Иван Калининский... in Scala User Group
ZLoyer Matveev
или у вас по нодам руками 11ая раскидана?
CDP7, всё, что есть, уже на нодах
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Если честно, я бы сделал так https://scastie.scala-lang.org/Odomontois/sw6tqs1YRAG4jldcoGbpwg/2
источник

Oℕ

Oleg ℕizhnik in Scala User Group
источник

ИК

Иван Калининский... in Scala User Group
Спасибо, выглядит элегантно. akka в зависимостях немного настораживает, но кто я, чтобы возражать))
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Зависит от того, нужно ли вам будет ещё что-то, кроме параллельного мэпа
источник

Oℕ

Oleg ℕizhnik in Scala User Group
В текущей постановке можно ваше решение оставить, но с ростом сложности стримы всё равно победят и в лаконичности и в производительности
источник

Oℕ

Oleg ℕizhnik in Scala User Group
скорее всего
источник

ИК

Иван Калининский... in Scala User Group
Oleg ℕizhnik
В текущей постановке можно ваше решение оставить, но с ростом сложности стримы всё равно победят и в лаконичности и в производительности
Скомпилировалось, тесты прошли, собралось, джарник теперь двадцать мегабайт в зипе))
источник

Oℕ

Oleg ℕizhnik in Scala User Group
А был
источник

ИК

Иван Калининский... in Scala User Group
был 9
источник