@scala_ru

Страница 969 из 1499
.
03.10.2017
17:43:42
Первомайка норм как раз

Nick
03.10.2017
17:57:27
Ну да. Первомайские у вам на заработки ездили)

.
03.10.2017
17:59:03
Ну это все мимо меня прошло. Я скорее наблюдателем был и пару тройку раз естествоиспытателем :)

Denis
03.10.2017
19:30:10
https://blog.merovius.de/2017/09/12/diminishing-returns-of-static-typing.html

Google
Mr.White
03.10.2017
20:37:34
Есть json4s за обёрткой, от json4s нужна лишь сериализация compact(render(x)). Что-то ни как не могу проковырять дырку в этой обёртке для того, чтобы передать туда объект и не тащить импорт от json4s, так как render принимает JValue как параметр. Там без тайптэгов и других вариантов передачи класса как второго параметра вообще ни как не обойтись? Что-то не могу сообразить как сделать в обёртке функцию всего с одним параметром для этого.

MF
03.10.2017
20:53:49
/toxic

Alexander
03.10.2017
20:54:11
https://blog.merovius.de/2017/09/12/diminishing-returns-of-static-typing.html
the marginal benefit of making user-defined containers type-safe simply seems pretty low

Из понравившегося. А вообще какой-то однобокий взгляд на сильные типы. Как же "self documenting", вывод свойств всяких полезных, оптимизации времени компиляции?

folex
03.10.2017
21:07:18
На HN правильно заметили, что автор вращается в среде не лучших представителей динамически и статически типизированных языков, поэтому сравнение у него достаточно неполное.

Mr.White
03.10.2017
21:24:40
Возьми circe)
Взял, грабли примерно теже, по ощущению.

На самом деле я не понял как оно работает. В доках примеры: val intsJson = List(1, 2, 3).asJson Открываю asJson, a там базовый класс AnyVal. https://github.com/circe/circe/blob/master/modules/core/shared/src/main/scala/io/circe/syntax/package.scala

Nick
03.10.2017
21:29:41
Mr.White
03.10.2017
21:31:23
AnyVal, не AnyRef

вызвать decode теже грабли?
Что именно там вызывать если изначально тип неизвестен? Я уже наверное туплю

Nick
03.10.2017
21:33:20
ты хочешь лист в строку превратить?

Mr.White
03.10.2017
21:33:56
List как пример, там будут потомки от AnyRef

Google
Nick
03.10.2017
21:35:25
json.noSpaces ?

Mr.White
03.10.2017
21:37:49
нет, просто asJson пробовал вызывать, я так подозреваю оно где-то в compile-time подбирает нужный тип, пока не освоил эти особенности scala-компиля

а, понял, там был asJson.pretty(Printer.spaces4)

Main.scala:19: could not find implicit value for parameter encoder: io.circe.Encoder[AnyRef]

Nick
03.10.2017
21:44:30
покажи код

Mr.White
03.10.2017
21:45:29
Hay.addConfiguration("test", (a:AnyRef) => a.asJson.noSpaces)

Nick
03.10.2017
21:48:48
ну конечно ж он тебя пошлет)

Mr.White
03.10.2017
21:48:53
Могу туда Serializable засунуть, так как AnyRef уж слишком тупо

хотя вряд ли поможет

Nick
03.10.2017
21:49:42
я вообще не понимаю что там должно делаться

Mr.White
03.10.2017
21:52:13
Есть классы, которые надо сериализовать, json или xml, технически я могу объявить для них общий базовый класс

Но я же уповал на магию скалы)

Nick
03.10.2017
21:53:31
Чтобы что-то сериализовать - нужно знать его тип

Mr.White
03.10.2017
21:55:48
т.е. даже конкретный тип, а не некоторый базовый? Нельзя ли подсунуть что-то вроде Serializabe, прописать какие-то контракты, чтобы иметь хоть какую-то вариативность в рантайме?

Nick
03.10.2017
21:58:01
если говорить о circe то там как раз главная идея - использование информации о типах

Oleg
04.10.2017
05:32:43
Посоны хотел бы спросить по поводу такого типа https://github.com/mandubian/khats/blob/master/src/main/scala/data/FunctorK.scala

Но только если вообразить его кайнда не [T[F[_],_]]], а просто [T[F[_]]]

Представим, что есть у меня какой-то Service[F[_]], и все методы у него навроде def foo(x: T1, y: T2): F[R]

Oleg
04.10.2017
05:40:16
Логично же было бы сделать для него инстанс FunctorK[Service], чтобы можно было просто сконвертить имеющееся решение из базовой монадки в специализированную?

Google
Oleg
04.10.2017
05:40:23
Mikhail
04.10.2017
05:41:52
Не понял вопроса
ты на митапе презенташку делал, про поделку для тайпсейф апи. вот и вопрос - этот сервис с методами является продолжением развития того направления?

Oleg
04.10.2017
05:51:53
с моей нубской колокольни выглядит логично, но не понятен прок (не осилил придумать)
Ну вот есть у меня Storage[F[_]], с методами put(key, value): F[Unit] и get(key): F[Value], я сделал для него реализацию, которая у меня возвращает Future или Task. Но теперь каждый раз когда юзаю в контексте со своей монадкой приходится делать там lift или fromTask. Ну и самое главное, его уже ьак просто в final tagless не упомянешь в зависимостях

Denis
04.10.2017
05:53:25
Есть же либа ) у эдмунда нобеля

Oleg
04.10.2017
05:53:39
Вот я и подумал, коли я знаю, как конвертить Task в MyMonad, может сразу сделать, чтобы все подобные инстанмы можно было конвертить

Denis
04.10.2017
05:53:43
Или у кого еще из кэтс тусовки

Oleg
04.10.2017
05:53:52
Есть же либа ) у эдмунда нобеля
Какая? Не та, что я кинул?

не khats?

Denis
04.10.2017
05:53:58
Там автовывод функторК

Как раз для этих целей

Ща

не khats?
https://github.com/kailuowang/mainecoon

Alexey
04.10.2017
05:57:43
Сталкивался с таким же вопросом. Решения не нашел. Было бы круто имя S[F[_]] и F~>G получить S[G[_]]

да, то что надо

Denis
04.10.2017
05:58:15
В либераторе есть mapK :)

a.
04.10.2017
05:59:45
А либератор на cats 1.0 переедет?

Denis
04.10.2017
06:00:14
Да конечно

Oleg
04.10.2017
06:04:05
В либераторе есть mapK :)
А если сервис не ковариантен относительно эффекта?

Google
Denis
04.10.2017
06:04:54
Там все инвариантно

Alexey
04.10.2017
06:04:59
В либераторе есть mapK :)
а внутри там реализация через фри? я слегка обеспокоен производительностью если для такой трансформации использовать фри

Oleg
04.10.2017
06:05:13
так как работает mapK?

Alexey
04.10.2017
06:05:40
зависит от либы? )

Denis
04.10.2017
06:05:47
а внутри там реализация через фри? я слегка обеспокоен производительностью если для такой трансформации использовать фри
Есть там с этим проблема, я хочу в следующей версии через кодогенерацию сделать, через инстанс

Alexey
04.10.2017
06:06:04
инстанц чего?

Alexey
04.10.2017
06:06:52
ага... ну все равно достаточно большой должен быть оверхед по сравнению с просто вызовом функции

Denis
04.10.2017
06:06:52
Я щас с телефона ) чуть попозже объясню

Alexey
04.10.2017
06:06:55
ок

Alexey
04.10.2017
06:07:42
вот как сделано в маинкуне - https://github.com/kailuowang/mainecoon/blob/master/macros/src/main/scala/mainecoon/autoFunctorK.scala

Denis
04.10.2017
06:10:36
Там хорошо сделано

Daniel
04.10.2017
06:48:46
context.flush() https://www.fpcomplete.com/blog/2017/06/readert-design-pattern

Oleg
04.10.2017
07:42:01
context.flush() https://www.fpcomplete.com/blog/2017/06/readert-design-pattern
ого я не знал, что lens TH умеет typeclass ы генерить

Надо в монокль запилить

Daniel
04.10.2017
07:43:46
а мне понравился момент про "юзайте мутабельные переменные и почти никогда StateT"

Oleg
04.10.2017
07:44:17
Daniel
04.10.2017
07:45:16
возможно если писать на хацкеле те отголоски жизни скаловых радикалов, что до меня долетают ничего такого не подразумевают.

тут момент что я не осбо этим и пользуюсь оно относительно нормально легло только в одном кейсе у меня (ReaderWriterStateT) и то райтер бы я выкинул

Google
Oleg
04.10.2017
07:47:03
возможно если писать на хацкеле те отголоски жизни скаловых радикалов, что до меня долетают ничего такого не подразумевают.
ну достаточно очевидно, что если ты напишешь приложение с каким-то повсеместно юзающимся StateT, любой кусок кода будет исполняться строго последовательно

Igor
04.10.2017
08:43:17
Мало ли, может сегодня кто-то зайдет, кто сможет ответить... Есть задача - подключить в scala проект kotlin (достаточно - в виде модуля), либо наоборот - в kotlin проект модуль на scala. Система сборки - gradle. Может быть кто-то преуспел в подобном, без создания отдельно одного приложения и второго, и описания их коммуникации локальной?

Nick
04.10.2017
08:46:58
фу

Aleksei
04.10.2017
08:49:25
по-моему на скале можно как на котлине писать

toxic ?

Nikolay
04.10.2017
08:50:46
toxic ?
слабовато

Igor
04.10.2017
08:51:36
а где возникает затык?
Ни одной статьи в сети на эту тему и (или) примера намекают на то, что это может быть проблематично.

Oleg
04.10.2017
08:52:13
Ни одной статьи в сети на эту тему и (или) примера намекают на то, что это может быть проблематично.
Ты реально ищешь статьи и пишешь в чат перед тем, как просто написать двухмодульный хелловорлд?

Igor
04.10.2017
08:52:13
по-моему на скале можно как на котлине писать
Есть Очень много полезностей, написанных на котле, и хочу сделать роутинг на скале под это все дело (удобнее).

Oleg
04.10.2017
08:53:00
Если бы это был хэллоуворлд - я бы не е*ал ни вам, ни себе мозги
тогда тем более возьми да сделай ещё один модуль и попробуй

если уже есть проект

Igor
04.10.2017
08:53:23
тогда тем более возьми да сделай ещё один модуль и попробуй
Интересовал опыт тех, кто это делал. Зачем тратить время впустую, если можно спросить?

Oleg
04.10.2017
08:53:36
никто не пишет статьи, потому что это просто работает

Страница 969 из 1499