73得票4回答
Haskell的Data.Typeable是什么?

我曾经看到过 Haskell 的 Data.Typeable 的参考,但我不清楚为什么我要在我的代码中使用它。 它解决了什么问题?怎么用?

28得票4回答
在Haskell中无样板的AST注释?

我一直在尝试使用Haskell编写的Elm编译器。 我想开始实现一些优化,其中一部分涉及遍历AST并向某些节点添加“注释”,例如尾调用等。 我知道可以使用SYB或uniplate来进行遍历,但我想知道是否有一种无需样板代码的处理类型的方法。 因此,假设我们有一堆代数类型用于表示我们的AS...

18得票1回答
什么是“Scrap Your Boilerplate”?

我看到人们在谈论Haskell中的“ Scrap Your Boilerplate”和“通用编程”。这些术语是什么意思?何时需要使用 Scrap Your Boilerplate,以及如何使用它?

16得票1回答
理解Data.Data.Data中gfoldl的类型签名

Data 定义了它的核心函数之一 gfoldl :gfoldl :: (Data a) => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) ...

11得票1回答
在F#中废弃您的Boilerplate

我在Haskell编程语言中使用了Scrap Your Boilerplate和Uniplate库,并发现这种基于鉴别联合体的通用编程形式非常有用。请问在F#编程语言中是否有类似的库?

11得票2回答
Clojure中类似于Haskell的“Scrap Your Boilerplate”(SYB)的方法

我在Haskell中发现了一个有趣的库,叫做Scrap Your Boilerplate,基于Simon Peyton Jones的一篇论文,该库似乎是在函数式编程语言中编写可以更新大型、深度嵌套数据结构的有效方法。它使代码如下所示:incS :: Float -> Salary -&g...

9得票1回答
使用GHC.Generics推导默认实例

我有一个类型类Cyclic,希望能够提供通用实例。 class Cyclic g where gen :: g rot :: g -> g ord :: g -> Int 给定一个空构造函数的和类型, data T3 = A | B | C deri...

9得票2回答
如何使用GHC.Generics(或其他类似框架)构建通用的函子实例?该问题涉及IT技术。

我正在尝试学习GHC Generics。在查看了几个示例后,我想尝试创建一个通用的 Functor 实例(忽略GHC可以自动为我派生它们)。但是,我意识到我不知道如何使用Generics处理参数化的数据类型,我看到的所有示例都是 * 类型的。这种情况是否可行?如果是,怎么做?(我也对其他类似的...

9得票2回答
TypeRep和“Type” GADT之间的关系是什么?

在 Scrap your boilerplate reloaded中,作者描述了Scrap Your Boilerplate的一种新呈现形式,这种形式被认为与原始版本等效。然而,一个不同之处在于他们假设一个由GADT编码的有限封闭的“基本”类型集合。 data Type :: * ->...

8得票1回答
SYB(Scrap Your Boilerplate)相对于GHC Generics的优势

相比于 GHC Generics,是否有一些任务只能使用 SYB 才能完成或者使用 SYB 会更加容易?