Вопросы по теме '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