Описание тега uniplate
Uniplate - это библиотека для написания простых и кратких общих операций.
2
ответа
Обеспечение того, чтобы тип A haskell содержал член типа B
Давайте посмотрим на следующий код: transformBi (++"asdasd") [1,2,3,4] Понятно, что этот код ничего не делает, но все равно прекрасно компилируется. Я хотел бы создать новую версию transformBi, которая не будет компилироваться, если компилятор может…
08 сен '14 в 06:49
1
ответ
Почтовый индекс с списком бул
У меня есть AST представляет программу на Haskell и список bitvector/bool, представляющий наличие аннотаций строгости на Pattern с по порядку. Например, 1000 представляет программу с 4 Pat где первый BangPat, Есть ли способ, которым я могу включать …
02 авг '15 в 19:23
1
ответ
Граф `Pat`s в модуле
Мне нужно посчитать количество Pat в хаскеле Module, Я знаю, что самый простой способ - это сопоставление с образцом на каждом уровне AST, в результате чего получается огромная функция, похожая на весь AST. Я считаю, что есть некоторый способ воспол…
02 авг '15 в 18:22
1
ответ
Общие преобразования на множестве данного типа данных
Если у меня есть тип данных, представляющий подмножество логики высказываний, таких как data Prop = Lit String | Neg Prop | And Prop Prop | Or Prop Prop Есть ли тогда простые способы сделать общие преобразования на [[Prop]]? Например замещать [[And …
14 сен '17 в 20:32
1
ответ
Производный Uniplate с производным
Моя программа широко использует Uniplate.Data, и я хочу улучшить ее производительность. В настоящее время я получаю Data экземпляры автоматически с помощью DeriveDataTypeable Расширение GHC. {-# LANGUAGE DeriveDataTypeable #-} import Data.Data impor…
30 июл '15 в 13:29
1
ответ
Как могут быть реализованы дыры и контексты для типов с более высоким родом в одноплатной библиотеке в стиле линз?
Андраш Ковач предложил этот вопрос в ответ на ответ на предыдущий вопрос. В одноплатной библиотеке в стиле линз для разных видов * -> * на основе класса class Uniplate1 f where uniplate1 :: Applicative m => f a -> (forall b. f b -> m (f …
19 авг '14 в 22:16
1
ответ
Упрощение GADT с Uniplate
Я пытаюсь ответить на этот вопрос, используя uniplateкак я и предлагал, но единственное решение, которое я до сих пор придумала, довольно уродливо. Это кажется довольно распространенной проблемой, поэтому я хотел знать, есть ли более элегантное реше…
18 авг '14 в 02:24
1
ответ
Можно ли использовать universeBi uniplate для получения узлов в первую очередь?
Можно ли использовать Uniplate's universeBiполучить вывод в порядке ширины? Похоже, что результаты возвращаются в первую очередь в глубину. Мне интересно, как я могу использовать uniplate для полученияuniverseBi в широком смысле. Для иллюстрации рас…
10 июл '20 в 02:56