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

Функциональные линзы
Может ли кто-нибудь объяснить мне функциональные линзы? Это удивительно сложная тема для Google, и я не добился никакого прогресса. Все, что я знаю, это то, что они предоставляют такие же функции get/set, как и в OO.
15487 просмотров
schedule 21.04.2022

Вставка в список в определенном месте с помощью линз
Я пытаюсь выполнить манипуляцию с вложенной структурой данных, содержащей списки элементов. Повозившись с различными подходами, я наконец остановился на линзах, как на лучшем способе сделать это. Они отлично работают для поиска и изменения...
1041 просмотров
schedule 06.07.2022

Объединение операций набора Scalaz Lens в цепочку
Пытаюсь освоить объективы scalaz7. Есть ли лучший способ связать операции набора? case class Outer(left: Inner, right: Inner) case class Inner(top: Int, bottom: Int) val left = Lens.lensu[Outer, Inner]( (o,v) => o.copy(left = v),...
341 просмотров
schedule 26.02.2023

Как удалить элемент из списка по индексу с помощью библиотеки объективов?
Я могу просмотреть, скажем, 4-й элемент в списке, используя такую ​​линзу: preview (ix 3) myList Есть ли что-то, что могло бы заменить «предварительный просмотр», чтобы удалить четвертый элемент из списка вместо его просмотра? Список...
1055 просмотров
schedule 29.03.2023

Как обновить карту с помощью монокля
Я хочу попробовать библиотеку Monocle . Но мне не удалось найти справочные ресурсы по базовому синтаксису. Короче, мне нужна оптика Map[K,V] -> A с оптикой V -> A , как я могу это определить? Предположим, у меня есть import...
1333 просмотров
schedule 21.05.2023

Как изменить эти вложенные классы case с полями Seq?
Некоторые вложенные классы case и поле addresses равно Seq[Address] : // ... means other fields case class Street(name: String, ...) case class Address(street: Street, ...) case class Company(addresses: Seq[Address], ...) case class...
1183 просмотров
schedule 01.09.2022

Как изменить значение и ввести JSON с помощью объектива аргонавта?
Предположим, у вас есть следующий простой документ JSON: { "key" : "val1" } Я хотел бы обновить значение «ключа», но в то же время изменить его тип, поэтому из строки измените его на int. Теперь, используя HCursor, как...
378 просмотров
schedule 09.11.2022

Установить значение структуры для указанного объекта с помощью линзы Ramda
Учитывая этот объектив: const obj = { foo: ['bar', 'qux'] } const foo0Lens = R.lensPath(['foo', 0]); R.set устанавливает foo первый элемент на указанное значение в объекте переменной: R.set(foo0Lens, 'baz')(obj); Хотя мне...
40 просмотров
schedule 27.04.2023

Как анализировать вложенные массивы Json с помощью Circe Optics
Я прочитал пример, приведенный в документации Circe, с использованием Circe Optics. Пример в документации довольно прост, потому что путь к узлу довольно легко найти. В моем случае json выглядит как import io.circe._, io.circe.parser._ val...
860 просмотров
schedule 11.04.2022

Эквивалент класса данных ярлыка объектива в стиле кортежа `_1`?
Согласно его документации , библиотека Haskell lens _1 предоставляет линзу для кортежей. Для записей данных вместо этого есть несколько других функций, таких как makeLenses , автоматически генерирующих линзы на основе имен полей записи. К...
71 просмотров
schedule 21.05.2023