Size: a a a

Scala User Group

2020 May 06

Oℕ

Oleg ℕizhnik in Scala User Group
Чем для модуляризации
источник

Oℕ

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

АК

Анатолий Кот... in Scala User Group
Oleg ℕizhnik
можно сделать например
trait Foo[L[_], F[_]]{
def foo(L[String]): F[String]
}
и абстракции поверх него, но мне сомнительная пока ценность такого
понятно, я думал может rabbit hole goes deeper и там есть еще какой-нибуть MonadK, который позволил бы что-то подобное выразить, те интуитивно по анологии с обычным applicative\monad, где последний добавляет дополнительные возможности к аппликативу.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
высокородные Монады есть, но они никакого отношения к этому случаю не имеют
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Мало того монады высших родов не являются сильными автоматически
источник

Oℕ

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

Oℕ

Oleg ℕizhnik in Scala User Group
По аналогии к тому, как функторы разных сортов дают контроль над выходом.
Профункторы разных сортов могут дать контроль над входом и выходом.
Я и скинул абстракцию профунктора высшего рода, которая могла бы это сделать.
Она в принципе была бы полезна, т.к. рекурсивные "модули" встречаются часто.
Такие как Handle, Local, Bracket и т.п.
Над ними можно было бы восстановить контроль разделив контравариантные и ковариантные позиции параметра на два разных параметра
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Собственно примерно этому и посвящена и идея ProK и его потомков.
Где-то посередине между ProK и ProCorepK можно было бы соорудить аналог "моноидального" профунктора и использовать его для композиции реализаций с аспектами, как это делается с помощью tofu.Pre\Post\Mid
источник

𝛈µ

𝛈 µ in Scala User Group
v01d
overloaded method value getAll with alternatives:
 ()akka.grpc.scaladsl.SingleResponseRequestBuilder[com.backend.advertisements.AdvertisementsEmptyRequest,com.backend.advertisements.AdvertisementsReply] <and>
 (in: com.backend.advertisements.AdvertisementsEmptyRequest)scala.concurrent.Future[com.backend.advertisements.AdvertisementsReply]
cannot be applied to (akka.stream.scaladsl.Source[com.backend.advertisements.AdvertisementsEmptyRequest,akka.NotUsed])
     val responseStream: Source[AdvertisementsReply, NotUsed] = client.getAll(requestStream)
В акке. Не надо её использовать
источник

АК

Анатолий Кот... in Scala User Group
Oleg ℕizhnik
По аналогии к тому, как функторы разных сортов дают контроль над выходом.
Профункторы разных сортов могут дать контроль над входом и выходом.
Я и скинул абстракцию профунктора высшего рода, которая могла бы это сделать.
Она в принципе была бы полезна, т.к. рекурсивные "модули" встречаются часто.
Такие как Handle, Local, Bracket и т.п.
Над ними можно было бы восстановить контроль разделив контравариантные и ковариантные позиции параметра на два разных параметра
Но все это все еще будет сомнительньной полезности? Те необходим маппинг из G[_] в F[_] (как в вашем примере выше), в то время как большенстве полезных
трейтов, которые может понадобиться оборачивать, методы имеют вид маппинга из тупла в F[_], и этот тупл в G так просто не соберешь чтобы всю эту профунктор структуру использовать. Правильно ли я понял, что из этого происходит сомнительность их полезности или это из какого-то другого соображения?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Сомнения в полезности только потому, что не видел мест, где это было бы полезно
источник
2020 May 07

P

Python in Scala User Group
Как называлась библиотека которая показывала какой код макрос генерирует? Чего-то не могу сходу найти.
источник

DM

Daniel Matveev in Scala User Group
Python
Как называлась библиотека которая показывала какой код макрос генерирует? Чего-то не могу сходу найти.
источник

P

Python in Scala User Group
Похоже. Спасибо!
источник

IP

Ilya Pribytkov in Scala User Group
Всем привет, не могу правильно сконфигурить сервер http4s  BlazeServerBuilder, при отправке запроса в логах пишется Accepted connection from /127.0.0.1:port . При каждом новом запросе запись новая выходит только с другим портом, сервер сам на 80, подскажите плиз, а то уж не знаю куда думать?
источник

λ

λoλdog in Scala User Group
что в твоем понимании правильно?
источник

λ

λoλdog in Scala User Group
это же пишется адрес откуда приходит запрос
источник

IP

Ilya Pribytkov in Scala User Group
λoλdog
это же пишется адрес откуда приходит запрос
А, ну когда нормальный запрос с curl отправляю сервер падает,  тоесть я роуд неверно настроил?
источник

λ

λoλdog in Scala User Group
с какой причиной?
источник

IP

Ilya Pribytkov in Scala User Group
λoλdog
с какой причиной?
502
источник