Публикации по теме 'shapeless'


Разбор CSV с помощью Scala и shapeless
Бесформенная библиотека служит отличной основой для создания универсальных повторно используемых компонентов. Мы демонстрируем использование типов HList и Generic для разбора строк в классы case. Введение Этот пост в блоге дополняет предстоящую статью Обработка журнала в реальном времени с помощью потоков Akka , которая включает в себя обработку записей журнала из журнала веб-сервера. Для удобства и ясности мы хотим разбить строки строки файла журнала на экземпляры класса case,..

Alphabet Soup: лицензирование, бесплатно
В предыдущем сообщении блога я представил библиотеку scala Alphabet Soup для преобразований на уровне типов. Он обеспечивает отображение между произвольно вложенными типами при условии, что компилятор может вычислить путь между ними, и все это с благодарностью Generic из shapeless . Быстрый пример: Целью здесь может быть любая комбинация типов атомарных источников, в любом порядке и в любой вложенности. Он работает точно так же для классов case и hlists, как в исходной, так и..

Вопросы по теме 'shapeless'

метод обновления с индексом переменной длины в Scala
Я писал код для чего-то вроде массива с переменными размерами. Что я делаю, так это поддерживаю линейные базовые коллекции и оборачиваю их методами доступа к индексу. Поскольку размерность структуры данных неизвестна, я пишу что-то вроде def...
806 просмотров
schedule 08.05.2024

Как добавить или добавить элемент в кортеж в Scala
У меня есть кортеж, и я хочу добавить элемент, не теряя безопасности типов. Вот чего я хочу добиться: val tuple = ("", 1, 1f) // (String, Int, Float) val newTuple:(String, Int, Float, Double) = tuple :+ 1d
17056 просмотров
schedule 02.07.2023

Невозможно воспроизвести примеры моноидов из бесформенных
Я пытаюсь воспроизвести примеры моноидов из: https://github.com/milessabin/shapeless/blob/master/examples/src/main/scala/shapeless/examples/monoids.scala scala> import shapeless._ import shapeless._ scala> import MonoidSyntax._...
144 просмотров
schedule 30.01.2023

Может кто-нибудь объяснить мне, для чего нужна библиотека Shapeless?
Может кто-нибудь объяснить мне простыми словами, для чего нужна библиотека Shapeless? В Scala есть дженерики и функции наследования, поэтому я немного не понимаю, для чего нужен Shapeless. Может быть, вариант использования, чтобы прояснить...
12460 просмотров
schedule 27.08.2022

Использование shapeless для преобразования кортежа Future в Future кортежа с помощью HList
Есть ли простой способ преобразовать кортеж типа (Future [A], Future [B], Future [C], ..., Future [N]) в Future [(A, B, C, ..., N)]? Это предполагает неопределенное количество элементов в кортеже. Я попытался преобразовать кортеж в HList и...
1874 просмотров
schedule 15.07.2023

бесформенный порт на scala-js: создайте артефакт с несколькими внешними зависимостями
Есть порт библиотеки shapeless на scala-js ( https://github.com/alexander-myltsev/shapeless ). Мне нужно правильно опубликовать артефакт с меньшим количеством возможных зависимостей от исходного бесформенного. Теперь я разветвил репозиторий...
298 просмотров
schedule 31.03.2023

Как настроить неоднозначные неявные ошибки Scala при использовании неравенств бесформенных типов
def typeSafeSum[T <: Nat, W <: Nat, R <: Nat](x: T, y: W) (implicit sum: Sum.Aux[T, W, R], error: R =:!= _7) = x typeSafeSum(_3, _4) //compilation error, ambiguous implicit found. Я не думаю, что сообщение об ошибке "обнаружен...
1516 просмотров
schedule 28.06.2023

неизменяемая структура данных в Scala
Я пытаюсь реализовать неизменяемую структуру данных, которая моделирует ИТ-сети и экземпляры (компьютеры). Вот упрощенная версия: object Sample { case class Instance(id: String, flag: Boolean) case class Network(id: String, instances:...
511 просмотров

Невозможно доказать, что одноэлементные типы являются одноэлементными типами при создании экземпляра класса типов.
Предположим, у меня есть класс типов, который доказывает, что все типы в совместном произведении Shapeless являются одноэлементными типами: import shapeless._ trait AllSingletons[A, C <: Coproduct] { def values: List[A] } object...
3587 просмотров
schedule 09.09.2022

Scala, получение параметров типа KList как HList
Предположим, у меня есть произвольный KList, который для аргумента имеет конструктор типа Option[_], т.е. type Example = Option[Int] :: Option[String] :: HNil Есть ли способ получить Hlist из параметров типа? type Params = Int :: String...
529 просмотров
schedule 28.12.2022

Нет Typeable по умолчанию для параметризованного типа с использованием Shapeless 2.1.0-RC2
Я пытался использовать Shapeless Typeable, чтобы сделать доступ к библиотекам Java немного более типобезопасным, но столкнулся с препятствием. Я не уверен, что я неправильно использую библиотеку, должен вручную предоставить экземпляр класса типов или...
835 просмотров
schedule 11.04.2022

N-кортеж опций к варианту N-кортежа
Моя интуиция подсказывает мне, что ничто, кроме макросов или гимнастики сложного типа, не может решить этот вопрос в общем случае. Могут ли Shapeless или Scalaz помочь мне здесь? Вот конкретный экземпляр проблемы с N = 2, но решение, которое я ищу,...
711 просмотров
schedule 03.03.2023

Recursive Poly1 для рекурсии по параметрам типа
Я использую Poly1 from shapeless для построения схем классов корпусов (описывающих их сериализацию) из экземпляров. Чтобы построить Schema из case class A(b: B, c: String, d: List[Int], e: Option[List[Option[Int]]]) должна быть схема для...
77 просмотров
schedule 15.11.2022

Shapeless: собственное ограничение HList с использованием Coproduct
(ПРИМЕЧАНИЕ. Отделение от Shapeless: попытка ограничить элементы HList по их типу ) Вопрос 2 – собственное ограничение с использованием совместного произведения Что я действительно хотел сделать, так это написать новое ограничение, используя...
545 просмотров
schedule 27.07.2022

Как в целом обновить поле класса дела с помощью LabelledGeneric?
Используя shapeless, можно использовать LabelledGeneric для обновления полей класса case следующим образом: case class Test(id: Option[Long], name: String) val test = Test(None, "Name") val gen = LabelledGeneric[Test] scala>...
841 просмотров
schedule 16.03.2023

Общий сумматор от Idris до Scala?
Разработка на основе типов с помощью Idris представляет следующий общий подход к суммированию: AdderType : (numArgs : Nat) -> Type AdderType Z = Int AdderType (S k) = (next : Int) -> AdderType k adder : (n : Nat) -> (acc : Int)...
333 просмотров
schedule 31.07.2023

Получение кодека circe для семейства классов запечатанных случаев, где базовый признак имеет (запечатанный) член типа
Я могу легко вывести кодек для семейства классов запечатанных корпусов следующим образом: import io.circe._ import io.circe.generic.auto._ sealed trait Base case class X(x: Int) extends Base case class Y(y: Int) extends Base object Test extends...
1210 просмотров
schedule 23.07.2023

Кто может объяснить смысл этого кода scala
Я давно читаю этот код. Я набрал его в REPL, и он тоже работает. но я понятия не имею, что здесь происходит. Почему и как это вообще работает!!! import shapeless._ case class Size[L <: HList](get : Int) object Size { implicit val...
171 просмотров
schedule 17.12.2022

Трудно понять Бесформенный код
Я пытаюсь изучить бесформенный код, однако я считаю, что бесформенный код действительно трудно понять. Итак, я получил этот пример кода из выступления на YouTube. https://www.youtube.com/watch?v=JKaCCYZYBWo Может ли кто-нибудь объяснить...
323 просмотров
schedule 16.12.2022

Общий вывод экземпляра класса типов для ADT
Предположим, у меня есть ADT и тип класса Foo , например: sealed trait A case class A1() extends A case class A2() extends A case class A3() extends A trait Foo[X] { def foo(x: X): String; } object Foo { implicit val a1foo = new Foo[A1] { def...
261 просмотров
schedule 25.02.2023