Size: a a a

Scala User Group

2020 May 15

Oℕ

Oleg ℕizhnik in Scala User Group
а зачем
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Вот взять просто жавовый драйвер и минималистичные абстракции поверх него
источник

NG

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

D

Danya in Scala User Group
Привет
Нубский вопрос вам в чатик
источник

D

Danya in Scala User Group
Эх, сообщения пересылать нельзя
Минуту
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ... in Scala User Group
Danya
Привет
Нубский вопрос вам в чатик
для нубских советую это - https://t.me/scala_learn
источник

D

Danya in Scala User Group
Спасибо
источник

K

Kai in Scala User Group
Dmytro Orlov
DIstage мне говорит, что моё io после retry
val io: IO[Throwable, Unit] = ???
io.retry(Schedule.duration(10.seconds))
превращается в IO[Any, Unit] и он теперь не знает, что с моим Any делать, а всё из-за товарища
zio.Schedule#duration:
def duration(duration: Duration): Schedule[Clock, Any, Duration] =
   elapsed.untilOutput(_ >= duration)
DIstage прав? zio.Schedule#duration козёл?
Ну, да, если ты аннотируешь io: IO[Throwable, Unit] и Скала пишет ошибку что там Any, то там и правда Any и надо делать refineOrDie или паттерн-матчить/заворачивать в BIOBadBranch в catchAll или еще как-то избавлятся от не-Throwable ошибки
источник

SB

S B in Scala User Group
Скала для меня нова, функциональное программирование -- нет. Вопрос знатокам: насколько плохо использовать implicit в таком виде как на примере ниже? Где может больно выстрелить?
источник

SB

S B in Scala User Group
trait Read[A] {
 def read(s: String): Option[A]
}

object Read {
 def apply[A](implicit A: Read[A]): Read[A] = A

 implicit val stringRead: Read[String] =
   new Read[String] { def read(s: String): Option[String] = Some(s) }

 implicit val intRead: Read[Int] =
   new Read[Int] {
     def read(s: String): Option[Int] =
       if (s.matches("-?[0-9]+")) Some(s.toInt)
       else None
   }
}
источник

λ

λoλegΥch in Scala User Group
нормально
источник

λ

λoλegΥch in Scala User Group
даже канонично
источник

SB

S B in Scala User Group
а именованный трейт на такую мелочь это норм? в том же Haskell'е достаточно было бы String -> Maybe[a] - анонимной функции в общем случае. они эквиваленты, конечно, но все же - еще меньше букаф можно? или так не принято и повсюду трейты?
источник

PM

Paveλ M in Scala User Group
S B
а именованный трейт на такую мелочь это норм? в том же Haskell'е достаточно было бы String -> Maybe[a] - анонимной функции в общем случае. они эквиваленты, конечно, но все же - еще меньше букаф можно? или так не принято и повсюду трейты?
повсюду трейты
источник

NV

Nikita Vilunov in Scala User Group
S B
а именованный трейт на такую мелочь это норм? в том же Haskell'е достаточно было бы String -> Maybe[a] - анонимной функции в общем случае. они эквиваленты, конечно, но все же - еще меньше букаф можно? или так не принято и повсюду трейты?
ну у тебя не просто функция, а функция с какой-то семантикой — парсинг значения из стринга, в таком случае именованный трейт/тайпкласс норм, как и в хаскеле
источник

λ

λoλegΥch in Scala User Group
S B
а именованный трейт на такую мелочь это норм? в том же Haskell'е достаточно было бы String -> Maybe[a] - анонимной функции в общем случае. они эквиваленты, конечно, но все же - еще меньше букаф можно? или так не принято и повсюду трейты?
в хаскеле функции заменяют тайпкласы?
источник

SB

S B in Scala User Group
λoλegΥch
в хаскеле функции заменяют тайпкласы?
я не про это, а про то, что он здесь возможно и не нужен. достаточно просто иметь Stirng -> Maybe a и вот и спрашиваю, можно ли на Скале как-то спуститься на уровень функции здесь без потери в компактности?
источник

SB

S B in Scala User Group
но товарищ выше уже ответил, что нет
источник

λ

λoλegΥch in Scala User Group
можно но не нужно
источник

SB

S B in Scala User Group
λoλegΥch
можно но не нужно
а как можно? что изменится? в имплисит пойдет сигнатура функции?
источник