https://combot.org/chat/-1001043143583 Ссылки на полезные ресурсы: https://ruhaskell.org/links.html ; Информация о мероприятиях: https://gist.github.com/qnikst/a96cac661be80d126d0829f2ced1916e
Тут скорее было просто обсуждения подхода, представленного мной выше, формата вопрос-решение как такового не было. Но это все уже не имеет значение. Мне просто было интересно нужен ли Вам пример, который бы показывал превосходство моего решения над линзами, как я понял нет, вот значит на этом и остановимся.
Читать полностью…про эту штуку я знаю, просто мне кажется, что у @Wave4334 основная задача — не та, которую решает prismSum
Читать полностью…это часть твоего вопроса, так что если ты уже получил ответ, то меня детали не очень волнуют
Читать полностью…Вопрос исчерпан, или мне все же привести пример ? Просто для меня это будет не быстро, так как мне придется доставать свой старый проект, вырывать от туда кусок кода и объяснять контекст, в общем, скорее всего только завтра смогу.
Читать полностью…Скорее всего это не взлетит, давно не писал такой страшный код, но думаю, что свет в конце тоннеля там есть.
Я правда сомневаюсь в огромной осмысленности такого класса типов и действительно ли нужна такая абстракция, а не просто функции и конкретная реализация.
Возможно я не прав но более верная, это класс типов для типа данных A, который предоставляет геттер и линзу. Например:class NoIdeaHowToCall a where
-- Хаха я линза
type View a :: Type
type Mod a :: Type
getView :: a -> View a
edit :: forall f . (Mod a -> f (Mod a)) -> f a
в телеге можно выбирать часть сообщения, на которую отвечаешь
Читать полностью…Это как выдать getter-ы для всего, а линзы только для того, что можно менять? Зачем для этого классы типов? (Я честно не понимаю проблему и зачем этого хотеть)
Читать полностью…вот тут /channel/haskellru/486155 задача и предлагаемое решение. я не понимаю, как то же самое через [одни только] линзы сделать
Читать полностью…Я подумал, все же согласен, пример неудачный (можно сделать без переусложнений, твой способ будет лучше), но справедливости ради я все же старался рассуждать в более общем случае.
Читать полностью…А почему? Даже сейчас на гадтах проще произведения пар динамического размера выражать и не страдать с той же невозможность выбора произвольных имен полей
Читать полностью…Возможно, мои последнии сообщения могли показаться немного токсичными, извиняюсь за это.
Читать полностью…да, но это для того, чтобы помочь вам найти решение вашей задачи
Читать полностью…@cheese_hs https://hackage-content.haskell.org/package/lens-5.3.5/docs/Control-Lens-Unsound.html я не уверен, но возможно вопрос про prismSum
Читать полностью…Ну as-is не взлетит, там наверняка много вопросов, решение которых приведёт к усложнению решения
Читать полностью…Ну а вдруг взлетит) Такое же не делали. Думаю у этой идеи есть потенциал. В общем, нужно много анализировать.
Читать полностью…В этом случае не было бы завязки на m
можно было смотреть всё и модифицировать кусок, эту логику можно было бы встраивать в любой контекст, как чистый код, так и нет. Вкручивать в MonadState a, или какой ещё трекер эффектов.
Тут класс типов повех m
. Т.е. будто бы это свойство контекста m
. Такие решения вполне возможны, но лично мне кажется, что у такой абстракции нет фиического смысла
"Это как выдать getter-ы для всего, а линзы только для того, что можно менять?" - да, все именно так. Классы типов просто для этого хорошо подходят (на мой взгляд).
Читать полностью…Если я правильно помню, то беззаконные позволяют зазумиться по друм параметрам
Читать полностью…Ничего не понял. Почему это должно помогать разделять и какое решение помогает?
Читать полностью…непонятно. покажи, пожалуйста, какой именно юзкейс покрывает твой класс и не покрывают линзы
Читать полностью…