首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GHC‘GHC’优化

GHC‘GHC’优化
EN

Stack Overflow用户
提问于 2017-05-04 23:58:20
回答 1查看 22关注 0票数 1

考虑LYAH的以下功能:

代码语言:javascript
复制
    removeNonUppercase st = [ c | c <- st, c `elem` ['A'..'Z']]   

GHC会优化elem测试吗?例如通过使用哈希表。如果谓词列表很大,那么这种优化就变得必要了,手动这样做会很烦人,例如通过构造一个Data.set或任何它被调用的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-15 07:28:02

如果您使用-O2 -ddump-simpl -dsuppress-all用GHC8.0.2编译它,您可以亲眼看到elem测试没有进行优化:

代码语言:javascript
复制
lvl_r21d = eftChar 65# 90#

removeNonUppercase_go =
  \ ds_a1Vs ->
    case ds_a1Vs of _ {
      [] -> [];
      : y_a1Vx ys_a1Vy ->
        case elem $fEqChar y_a1Vx lvl_r21d of _ {
          False -> removeNonUppercase_go ys_a1Vy;
          True -> : y_a1Vx (removeNonUppercase_go ys_a1Vy)
        }
    }

removeNonUppercase = \ st_aqk -> removeNonUppercase_go st_aqk
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43794481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档