Публикации по теме '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 просмотров
schedule
01.02.2023
Невозможно доказать, что одноэлементные типы являются одноэлементными типами при создании экземпляра класса типов.
Предположим, у меня есть класс типов, который доказывает, что все типы в совместном произведении 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