Size: a a a

Scala User Group

2020 July 29

IP

Ilya Petrov in Scala User Group
Подскажите
foreachPar
из ZIO на каком пуле будет всё запускать и как это конфижить? Как я понял нужно смотреть на Runtime?
источник

S

Simon in Scala User Group
Ilya Petrov
Подскажите
foreachPar
из ZIO на каком пуле будет всё запускать и как это конфижить? Как я понял нужно смотреть на Runtime?
в основном - да, Runtime, но только если нет явного переключения контекста, как effectBlocking.
источник

S

Simon in Scala User Group
ну или если кто-нибудь не извратился с запуском Future и ZIO.fromFuture
источник

AO

Artem Ohanjanyan in Scala User Group
Подскажите, пожалуйста, можно ли в Scala заставить работать что-нибудь подобное без asInstanceOf?
https://scastie.scala-lang.org/JXBpx6urSoK18rNxbBrMiQ

В Haskell аналогичный код работает, так что вроде бы я хочу чего-то адекватного
data W e a where
 WEnv :: W e e

bar :: e -> W e a -> Maybe a
bar e w = case w of
 WEnv -> Just e
источник

PM

Paveλ M in Scala User Group
Artem Ohanjanyan
Подскажите, пожалуйста, можно ли в Scala заставить работать что-нибудь подобное без asInstanceOf?
https://scastie.scala-lang.org/JXBpx6urSoK18rNxbBrMiQ

В Haskell аналогичный код работает, так что вроде бы я хочу чего-то адекватного
data W e a where
 WEnv :: W e e

bar :: e -> W e a -> Maybe a
bar e w = case w of
 WEnv -> Just e
config match {
   case _: ConfigEnv[_] => Some(environment)
 }
источник

AO

Artem Ohanjanyan in Scala User Group
Paveλ M
config match {
   case _: ConfigEnv[_] => Some(environment)
 }
спасибо!
источник

AO

Artem Ohanjanyan in Scala User Group
а этому есть какое-то объяснение?
источник

PM

Paveλ M in Scala User Group
Artem Ohanjanyan
а этому есть какое-то объяснение?
ну, у вас ConfigEnv принимает один type parameter
источник

PM

Paveλ M in Scala User Group
в рантайме типов нет, поэтому я поставил _
источник

M

Mikhail in Scala User Group
Artem Ohanjanyan
спасибо!
это лишено смысла, потому что ты теряешь типы и не проверишь их в рантайме - а судя по твоему коду, типы тебе весьма нужны ...
источник

AO

Artem Ohanjanyan in Scala User Group
Mikhail
это лишено смысла, потому что ты теряешь типы и не проверишь их в рантайме - а судя по твоему коду, типы тебе весьма нужны ...
не понял, зачем мне проверять типы в рантайме
источник

AO

Artem Ohanjanyan in Scala User Group
Paveλ M
в рантайме типов нет, поэтому я поставил _
всм я не понял, почему не работает, если делать match по конструктору, а не по типу
источник

PM

Paveλ M in Scala User Group
Artem Ohanjanyan
всм я не понял, почему не работает, если делать match по конструктору, а не по типу
ConfigEnv это еще не тип
источник

PM

Paveλ M in Scala User Group
это в каком-то смысле ф-ция из типа в тип
источник

M

Mikhail in Scala User Group
Artem Ohanjanyan
не понял, зачем мне проверять типы в рантайме
может быть потому, что ConfigEnv - порождает Config[Env,Env], а код Config и resolveRec предполагает, что парочка может быть разной)
источник

AO

Artem Ohanjanyan in Scala User Group
Paveλ M
это в каком-то смысле ф-ция из типа в тип
ну, обычно же match по констуктору работает
источник

AO

Artem Ohanjanyan in Scala User Group
Mikhail
может быть потому, что ConfigEnv - порождает Config[Env,Env], а код Config и resolveRec предполагает, что парочка может быть разной)
может быть, но ConfigEnv нельзя сконструировать таким образом, чтобы парочка была разной
источник

AO

Artem Ohanjanyan in Scala User Group
Haskell вот понимает, что если туда приходит ConfigEnv, то те типы обязательно одинаковые
источник

M

Mikhail in Scala User Group
Artem Ohanjanyan
ну, обычно же match по констуктору работает
Нет, match работает по сравнению + unapply. По конструкторам он не работает
источник

AO

Artem Ohanjanyan in Scala User Group
Artem Ohanjanyan
Haskell вот понимает, что если туда приходит ConfigEnv, то те типы обязательно одинаковые
вызвать такую функцию как-то по плохому не выйдет
источник