Вопросы по теме 'haskell-lens'
Недопустимый полиморфный или квалифицированный тип в Control.Lens
Я работаю с Control.Lens . Фактическая функция, которую я пишу, довольно сложна, но для целей этого вопроса я свел ее к минимальному ошибочному примеру:
import Control.Lens
exampleFunc :: Lens s t a b -> String
exampleFunc _ = "Example"...
1721 просмотров
schedule
10.06.2022
Как установить диапазон оси в библиотеке диаграмм Haskell
В диаграмме haskell, как вы меняете диапазон оси? Кажется, это как-то связано с линзами и окнами просмотра, но как новичок в Haskell мне трудно читать API:...
541 просмотров
schedule
15.01.2023
Как я могу выразить `mapM` с помощью `concat`, используя линзы для объединения результатов операции ввода-вывода?
Я пытаюсь понять, как объединить traverseOf с >>= таким образом, чтобы было возможно следующее.
TLDR; Простым примером на чистом Haskell было бы что-то вроде этого, но с использованием линз глубоко внутри структуры данных.
λ>...
554 просмотров
schedule
03.06.2024
Учебник по Haskell Lens с траверсом
Я пытаюсь следовать этому руководству: http://blog.jakubarnold.cz/2014/08/06/lens-tutorial-stab-traversal-part-2.html
Я использую следующий код, который загружаю в ghci:
{-# LANGUAGE RankNTypes, ScopedTypeVariables #-}
import...
782 просмотров
schedule
03.02.2023
Создание бесточечной линзы не проверяет тип
В функции test я просматриваю список, генерирую линзы из его членов, а затем печатаю некоторые данные. Это работает, когда я использую точечный стиль вызова. Он не проверяет тип, когда я делаю его безточечным.
Почему это так, и как я могу...
114 просмотров
schedule
24.07.2023
Используйте линзу для замены определенного элемента списка (ключ, значение)
Я хочу использовать библиотеку линз от Kmett для доступа к элементу списка (ключ, значение) в конкретный ключ. Другими словами, я хотел бы заменить этот код чем-то более идиоматичным и, возможно, более коротким:
type Headers = [ (ByteString,...
258 просмотров
schedule
19.08.2022
Как я могу использовать (^? ix 0) в независимом геттере?
Извините за плохо сформулированный заголовок, но я даже не знаю, как его правильно задать.
Как я могу повернуть это?
instPublicIP :: Instance -> Maybe Text
instPublicIP inst =
inst ^. insNetworkInterfaces ^? ix 0 . iniAssociation . _Just ....
90 просмотров
schedule
23.11.2023
Простая линза Haskell из учебника нарушает закон линз
Я читаю этот учебник:
http://blog.jakubarnold.cz/2014/08/06/lens-tutorial-stab-traversal-part-2.html
и мой код выглядит так:
import Control.Applicative
import Data.Traversable
import Control.Lens
data User = User String [Post] deriving...
214 просмотров
schedule
30.03.2023
Как сделать изделие из двух линз?
Если у меня два объектива:
foo :: Lens' X Foo
bar :: Lens' X Bar
Есть ли способ построить линзу продукта:
foobar :: Lens' X (Foo, Bar)
foobar = ... foo bar
или это невозможно?
446 просмотров
schedule
30.08.2022
Как лучше всего представить короткую битовую строку?
Я хочу представить строку длиной до 120 бит, и скорость имеет решающее значение. Мне нужно иметь возможность построить битовую строку с помощью повторяющихся операций snoc , а затем использовать ее с помощью повторяющихся операций uncons . Одна...
395 просмотров
schedule
11.09.2022
Объединение призм при извлечении полей JSON с помощью Lens-Aeson
У меня есть большой двоичный объект JSON, похожий на следующий:
[
{
"version": 1
},
{
"version": "3"
},
...
]
Обратите внимание, что некоторые версии являются числами, а некоторые — строками. Я хочу получить список версий....
347 просмотров
schedule
10.03.2024
Обоснование эквивалентности типов в Haskell Lens Library
Согласно учебнику. на объективах :
type Getting b a b = (b -> Const b b) -> (a -> Const b a)
-- ... equivalent to: (b -> b ) -> (a -> b )
-- ... equivalent to: (a -> b )...
82 просмотров
schedule
09.03.2023
Как определить тип составного обхода?
Я читаю запись в блоге на обходы объектива . В нем есть состав
traverse.posts
и это заканчивается типом
(Traversable t, Applicative f) =>
([Post] -> f [Post]) -> t User -> f (t User)
Я понимаю, что это композиция...
97 просмотров
schedule
09.04.2024
Как преобразовать функцию в геттер линзы?
Вероятно, связано с Что в объективе я должен использовать для создания геттера только для чтения по индексу?
Я ищу вариант функция линзы , которая позволяет мне создать Getter s a из s -> a . Существует ли что-то подобное?
105 просмотров
schedule
03.07.2023
Как линзировать поле записи, которая является полиморфной функцией?
Я только что установил библиотеку lens , поэтому я могу легко set использовать вложенную структуру данных. Однако я столкнулся с проблемой. Вот минимальный пример, демонстрирующий мою проблему
Следующий код не компилируется:
{-# LANGUAGE...
188 просмотров
schedule
04.02.2024
Как увеличить охват для типов записи с линзами?
Задний план
Я использую типы записей с линзой . Я написал несколько модульных тестов с помощью HUnit и HSpec.
Однако отчет о покрытии HPC показывает, что методы доступа к полям никогда не выполнялись.
Таким образом, способствуя более...
49 просмотров
schedule
18.04.2023
Как указать параметры типа для At (картоподобные типы) из Lens в подписи типа Haskell?
Я хотел бы ограничить тип ключа ImageId и тип значения Sprite , оставив без ограничений конкретный тип карты с помощью В классе типов . Это возможно? Кажется, я получаю какое-то несоответствие, и, основываясь на сигнатуре типа, я не вижу, как...
116 просмотров
schedule
31.05.2024
Не удалось сделать вывод (показать a10), возникающий из-за использования «def»
Я застрял на этой ошибке довольно долгое время. Я не уверен, что я глуп, но я не могу понять, откуда это исходит...
Тип данных Settings определяется так:
data Settings a = Settings {
_nodeDrawFunction :: a -> Diagram B
,...
134 просмотров
schedule
14.06.2023
Как можно экспортировать запись типа данных в haskell без экспорта ее полей?
Я видел несколько более старый вопрос в Избегание загрязнения пространства имен в Haskell и ищу современный решение с помощью линз.
Я думаю, что подход будет состоять из нескольких шагов:
Перепишите поля так, чтобы они подходили для линз:...
143 просмотров
schedule
08.02.2022
Как составлять ошибки с помощью data.validation
Я использую замечательный пакет Data.Validation для проверки. Однако я не могу правильно составить их для сложных типов.
Я создал типы для электронной почты и пароля Email и Password соответственно. Я создал проверки и ошибки, которые могут...
77 просмотров
schedule
31.07.2022