Size: a a a

Scala User Group

2020 July 31

λ

λoλcat in Scala User Group
Где же Борис, когда он так нужен...
источник

AS

Artem Sokolov in Scala User Group
Dmitry
Понятно. Посоветуйте видеокурс по Haskell на русском, если можно.
Москвина на ютубе или на степике. в сети даже домашки есть порешать
источник

SA

Sergey Alaev in Scala User Group
Еще один FizzBuzz, теперь на асинхронных стрелках: https://scastie.scala-lang.org/FEIFHiJCSZOzpqJJmNBF0Q
На удивление, достаточно интересно композится.
источник

А

Антонов-Овсеенко... in Scala User Group
Sergey Alaev
Еще один FizzBuzz, теперь на асинхронных стрелках: https://scastie.scala-lang.org/FEIFHiJCSZOzpqJJmNBF0Q
На удивление, достаточно интересно композится.
Интересно было бы увидеть the same на ZIO Arrow
источник

SA

Sergey Alaev in Scala User Group
Антонов-Овсеенко
Интересно было бы увидеть the same на ZIO Arrow
не уверен, ZIO Arrow сделан совсем по другому - он опирается на монаду ZIO. Не уверен даже, что его можно назвать стрелкой)
источник

SA

Sergey Alaev in Scala User Group
Смысл стрелок в том, чтобы перенести все издержки по композиции на этап инициализации программы, уменьшая аллокации в рантайме. Насколько я понял ZIO Arrow, его возможности очень ограничены.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Наконец-то узнал смысл стрелок
источник

SA

Sergey Alaev in Scala User Group
Oleg ℕizhnik
Наконец-то узнал смысл стрелок
Неужели ты не читал доку к ZArrow? там ровно то же написано
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sergey Alaev
Неужели ты не читал доку к ZArrow? там ровно то же написано
Не читал
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Есть даже опасения, что и не буду
источник

SA

Sergey Alaev in Scala User Group
Не так много потеряешь. Пока выглядит как эксперимент с очень туманными перспективами. Но потенциальное применение стрелок для ускорения фп на скале мы когда-то обсуждали.
источник

BK

Boris V. Kuznetsov in Scala User Group
Andrey
Накидал example: https://scastie.scala-lang.org/1eZJTbOLRv2Es0vRDYA2KA
Возможным решением может быть такое: https://scastie.scala-lang.org/rY94UtD0Q1WqXWz9RHTGkg
источник

BK

Boris V. Kuznetsov in Scala User Group
В ZLayer строится Dependency Graph и все Layers переиспользуются. Чтобы правильно работала логика в вашем примере, нужно добавить fresh
источник
2020 August 01

A

Andrey in Scala User Group
Борис, спасибо, но ваш solution не работает, все равно печатается единица
источник

A

Andrey in Scala User Group
Антонов-Овсеенко
Возможно, вам стоит попробовать distage вместо ZLayer. По нему как раз недавно был интересный доклад
А где про это почитать?
источник

BK

Boris V. Kuznetsov in Scala User Group
Andrey
Борис, спасибо, но ваш solution не работает, все равно печатается единица
У меня в IDE печатается 1 - 2 - 1.5 - 2.5  с fresh и 1 -2 - 1.5 - 1.5 без fresh. А какой результат вы ожидаете получить ?
источник

BK

Boris V. Kuznetsov in Scala User Group
Andrey
А где про это почитать?
источник

SM

Sergey M in Scala User Group
Hello everybody
Тема - Reflection

Я тут хочу написать функцию которая достаёт названия полей из класса (и case и обычного тоже)

написал такое

   case class Pers(name: String, age: Int)
   class Car(name: String)

   val p = Pers("Ivan", 2)
   val c = new Car("BMV")

   import scala.reflect.runtime.universe._
   
   def getListOfFields(p: Object): List[String] = {
     val m = runtimeMirror(p.getClass.getClassLoader)

     val symbol = m.classSymbol(p.getClass).typeSignature.typeSymbol.asClass
     val ctor = symbol.primaryConstructor

     val paramList = ctor.typeSignature.paramLists
     paramList.flatten.map(s => s.name.toString)
   }

   getListOfFields(p)
   getListOfFields(c)

//val res3: List[String] = List(name, age)
//val res4: List[String] = List(name)


Это же можно как-то проще написать? А то как-то слишком cumbersome
Но зато так работает
источник

DZ

Dmitry Zuev in Scala User Group
Sergey M
Hello everybody
Тема - Reflection

Я тут хочу написать функцию которая достаёт названия полей из класса (и case и обычного тоже)

написал такое

   case class Pers(name: String, age: Int)
   class Car(name: String)

   val p = Pers("Ivan", 2)
   val c = new Car("BMV")

   import scala.reflect.runtime.universe._
   
   def getListOfFields(p: Object): List[String] = {
     val m = runtimeMirror(p.getClass.getClassLoader)

     val symbol = m.classSymbol(p.getClass).typeSignature.typeSymbol.asClass
     val ctor = symbol.primaryConstructor

     val paramList = ctor.typeSignature.paramLists
     paramList.flatten.map(s => s.name.toString)
   }

   getListOfFields(p)
   getListOfFields(c)

//val res3: List[String] = List(name, age)
//val res4: List[String] = List(name)


Это же можно как-то проще написать? А то как-то слишком cumbersome
Но зато так работает
Shapeless
источник

DZ

Dmitry Zuev in Scala User Group
Magnolia
источник