gpt4 book ai didi

haskell - SYB(废弃您的样板)相对于 GHC 泛型的优势

转载 作者:行者123 更新时间:2023-12-02 13:47:40 24 4
gpt4 key购买 nike

与 GHC Generics 相比,是否有任何任务只能通过 SYB 才能完成,或者更容易完成?

最佳答案

GHC 泛型是一种相当冗长的方法,用于执行基本上任何查询或遍历。例如,考虑一种具有 StmtExpr 类型的语言 AST,它们都派生出 TypeableGeneric数据:

data Stmt = ... lots of constrs ...
data Expr = Const Int
| ... lots of other constrs ...

如何利用 SYB 获取从 ExprStmt 开始的所有常量?像这样的东西:

getConst (Const i) = [i]
getConst _ = []

getAllConst = everything (++) (mkQ getConst)

将此与需要两个类的泛型的典型使用进行对比,遍历乘积表示的总和,并为需要遍历的 N 类型实例化该类 N 次。 SYB 以及大多数通用系统都表现不佳的地方是 performance .

关于haskell - SYB(废弃您的样板)相对于 GHC 泛型的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26893567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com