例如,对于列表,如果我用LHS编写规则myFn [x],那么当程序员写入时它是否也能触发myFn (x:[])?或者我是否必须为每种可能的语法编写单独的规则?
重写规则得到了消除.所以重写规则就像
{-# RULES
"myFn/singleton" forall x. myFn [x] = myOtherFn x
#-}
Run Code Online (Sandbox Code Playgroud)
将作为内部存储
forall x. myFn (x:[]) = myOtherFn x
Run Code Online (Sandbox Code Playgroud)
然后将其应用于程序的脱糖形式.(GHC中的所有优化都发生在程序的脱糖形式上).
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |