作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
与 GHC Generics 相比,是否有任何任务只能通过 SYB 才能完成,或者更容易完成?
最佳答案
GHC 泛型是一种相当冗长的方法,用于执行基本上任何查询或遍历。例如,考虑一种具有 Stmt
和 Expr
类型的语言 AST,它们都派生出 Typeable
、Generic
和 数据
:
data Stmt = ... lots of constrs ...
data Expr = Const Int
| ... lots of other constrs ...
如何利用 SYB 获取从 Expr
或 Stmt
开始的所有常量?像这样的东西:
getConst (Const i) = [i]
getConst _ = []
getAllConst = everything (++) (mkQ getConst)
将此与需要两个类的泛型的典型使用进行对比,遍历乘积表示的总和,并为需要遍历的 N 类型实例化该类 N 次。 SYB 以及大多数通用系统都表现不佳的地方是 performance .
关于haskell - SYB(废弃您的样板)相对于 GHC 泛型的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26893567/
我使用cocos2d-x和Lua进行开发。最近我使用 Instruments 并发现了一些被废弃的内存:cocos2d-x 在自己的自动释放池中对对象执行释放,但我仍然有来自 Lua 的引用。如何确定
我是一名优秀的程序员,十分优秀!