@scala_ru

Страница 958 из 1499
Alexandr
27.09.2017
09:50:38
Нет, в обычной Scala

Kirill
27.09.2017
09:51:18
Так медленно или нет, вы уж определитесь :)

Alexandr
27.09.2017
09:51:47
Так что проверка не в рантайме

Google
Denis
27.09.2017
09:53:21
Но не факт, не помню

Dmitry
27.09.2017
09:54:08
Делаешь свой тайпкласс, для нужных типов делаешь инстансы. Можно автовывод через shapeless замутить скорей всего.
Вот я тоже ближе всего в shapeless такое нашел, но ни разу не пользовался, и на первый взгляд там такого не нашел.

Denis
27.09.2017
09:54:30
А что так много этих типов?

Или просто лень? ))

Dmitry
27.09.2017
09:54:43
А так, да, клепать свои тайпклассы мне пока больше нравится чем рефлективные вызовы.

Лень))

Denis
27.09.2017
09:54:49
понял ))

Alexey
27.09.2017
09:55:13
Ну ты можешь метод который будет генерить тайп класс ограничить структурно, и шейплесом уже создавать

Dmitry
27.09.2017
09:56:23
Denis
27.09.2017
09:56:58
https://github.com/milessabin/shapeless/pull/657

Dmitry
27.09.2017
09:57:30
Можно как-то описать трейт и потом чтобы шейплесс его наполнил, как-то так?

Denis
27.09.2017
09:58:17
Если бы это было вмерджено, то можно было бы сделать compile time structural typing

Google
Dmitry
27.09.2017
10:00:10
Да, начинаю догонять.. Крутая штука, а что не вмерджили так и не понял.

Dmitry
27.09.2017
10:03:07
смотри в сторону LabeledGeneric
Ага, спасибо. Как раз читаю.

Юрий
27.09.2017
10:04:27
Страшные вещи вы советуете

Denis
27.09.2017
10:04:29
смотри в сторону LabeledGeneric
там нет понятия сигнатуры методов

Alexey
27.09.2017
10:04:46
и что Оо

implicit def createTypeClass[A <: { def foo: Int }]...

Denis
27.09.2017
10:06:13
так и чем это будет отличаться от простого использования structural typing ?

Alexey
27.09.2017
10:07:09
тем, что это просто прочекает что тайп класс создан для подходящего типа

и никакой рефлексии на рантайме

Dmitry
27.09.2017
10:07:30
Denis
27.09.2017
10:07:47
и никакой рефлексии на рантайме
в инстансе тайпкласса ты будешь вызывать foo

Alexey
27.09.2017
10:07:54
в инстансе тайпкласса ты будешь вызывать foo
там будет тайпкласс сделаный при помощи шейплеса

Dmitry
27.09.2017
10:08:23
Т.е. структурные типы самой скалой в определенных кейсах компилируются?

Alexey
27.09.2017
10:09:01
Т.е. структурные типы самой скалой в определенных кейсах компилируются?
компилятор проверяет, что твой тип подходит под структурный

Dmitry
27.09.2017
10:09:24
Ну да, а потом при вызове делает рефлективный вызов.

Как я понимаю LabelledGeneric только с кейсклассами может работать, т.к. ReprTypes имеет только одну имплементацию CaseClassMacros: https://github.com/milessabin/shapeless/blob/master/core/src/main/scala/shapeless/generic.scala#L286

Denis
27.09.2017
10:11:04
https://scastie.scala-lang.org/MqgV2xNMSHGLKhsl9Yideg

Google
Dmitry
27.09.2017
10:12:26
а, хочется не кейс классы
Да, хочется вообще джавовские классы, с методом.

Alexey
27.09.2017
10:12:30
тогда макросом изи

Dmitry
27.09.2017
10:12:50
https://scastie.scala-lang.org/MqgV2xNMSHGLKhsl9Yideg
Так тут те же рефлективные методы, но внутри тайпкласса. Или нет?

Denis
27.09.2017
10:13:18
hohserg
27.09.2017
10:13:19
Всем привет! Понадобилось сериализовывать OpenHashMap. Подскажите, как подойти к этому делу? OpenHashMap не сериализуется сам по себе(добавление with Serialization не пашет).

Щас, допишу

Логичным кажется преобразование OpenHashMap to mutable.Map

Dmitry
27.09.2017
10:14:21
тогда макросом изи
Да, тупо напишу макрос с этим единственным методом и все. Благо у меня уже есть отдельный проект ради всяких макросов. Всем спасибо!

KrivdaTheTriewe
27.09.2017
10:14:25
Что почитать ?

Denis
27.09.2017
10:14:36
с макросами - easy

Dmitry
27.09.2017
10:15:45
Ну дак с этого и надо было начинать :)
)) факт. Я думал есть какой-то стандартный шэйплесс или типа того способ. А то все никак не могу его попробовать.

Alexey
27.09.2017
10:16:28
шейплес для тех, кто не хочет в макросы

KrivdaTheTriewe
27.09.2017
10:18:51


Oleg
27.09.2017
10:18:55
KrivdaTheTriewe
27.09.2017
10:19:01
Или что то другое на ночь стоит ?

Alexey
27.09.2017
10:19:46
либо наоборот
Ну шейплес только для сильных духом, для тех кто любит помедетировать на компиляцию

Oleg
27.09.2017
10:19:54
я бы купил ради обложки

Google
Dmitry
27.09.2017
10:20:16
А тогда еще один вопрос, если я сделаю автоматический вывод такого тайпкласса например, то они для одинаковых классов будут кэшироваться как-то. Т.е. если для одного и того же класса в рвзных файлах.

Dmitry
27.09.2017
10:22:11
Имея в виду 12 скалу. Этот тапйкласс ведь по факту почти просто лямбдой будет, может там как-то invokeDynamic или типа того ? Не ?

Cirno
27.09.2017
10:22:31
Почему "ламбда", а не "лямбда"?

Aleksander
27.09.2017
10:23:03
Почему "ламбда", а не "лямбда"?
Почему ява, а не джава?:)

Henadz
27.09.2017
10:23:30
щас начнётся

андроид андройд

Oleg
27.09.2017
10:23:36
implict val fooKorolev: Korolev[Foo] = deriveKorolev

Henadz
27.09.2017
10:23:39
биткоин биткойн

Cirno
27.09.2017
10:23:40
Почему ява, а не джава?:)
В других книгах на русском о ФП пишут "лямбда"



Например.

KrivdaTheTriewe
27.09.2017
10:23:51
Почему "ламбда", а не "лямбда"?
Я не знаю, я ищу то,что перед сном читать

Cirno
27.09.2017
10:24:14
биткоин биткойн
Главное чтобы не "войн" вместо "воин" :^)

Henadz
27.09.2017
10:24:51
Главное чтобы не "войн" вместо "воин" :^)
эта проблема ещё 10 века н.э.

старославянский против греческого

ворог vs враг

Google
Oleg
27.09.2017
10:25:27
Имея в виду 12 скалу. Этот тапйкласс ведь по факту почти просто лямбдой будет, может там как-то invokeDynamic или типа того ? Не ?
Чтобы в одном скоупе часто не искало есть не очень стабильное https://github.com/milessabin/shapeless/blob/master/core/src/main/scala/shapeless/cached.scala

Oleg
27.09.2017
10:26:54
Ну да.
Вот, короче только вот так вручную и кешировать. Получится "полуавтоматический вывод" как в сёрке, но это норм в большинстве случаев

Вообще ведётся общая дискуссия про когерентныеи тайпклассы, возможно она и приведёт к тому, что компилятор научится кешировать найденные инстансы build-wise https://github.com/lampepfl/dotty/issues/2047

Vadim
27.09.2017
10:31:09
вообще методы вызываемые на structural типах и так кешируютя

Vadim
27.09.2017
10:37:08
они на MethodHandl'ах - они и кешируются

KrivdaTheTriewe
27.09.2017
10:37:13
я бы купил ради обложки
есть что посвежее из книг сейчас, что стоит вместо этой ? 30 лет книге как никак

Dmitry
27.09.2017
10:39:09
KrivdaTheTriewe
27.09.2017
10:46:03
О чём?
о лямбда и прочих исчислениях книга

Oleg
27.09.2017
10:46:09
типдривен разработка в едрисе устроит тебя?

KrivdaTheTriewe
27.09.2017
10:46:43
ну ваще тип хотелось формализованное что-то общее, а в идрисчате я сижу, да

Daniel
27.09.2017
10:50:07
KrivdaTheTriewe
27.09.2017
10:51:08
Daniel
27.09.2017
10:51:43
я к тому что твой вопрос слишком общий

а так @clayrat владеет лучшим индексированным поиском по связанным тематикам

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