小编The*_*non的帖子

在Haskell中测试单例列表内容的最有效或惯用方法?

这个问题现在对我来说是严格的学术问题,但有一天我可以看到它有实际应用.通过Haskell自我教育,我成功地建立了无限的素数列表.其中一部分就是这个功能:

isPrime n
    | n < 2                         = False
    | head (primeFactorsOf n) == n  = True
    | otherwise                     = False
Run Code Online (Sandbox Code Playgroud)

其中primeFactorsOf按升序返回数字素数列表.1不是素数,所以素数n的主要因素是单身人士名单[n].因此,第二个防护罩可以替换为:

    | primeFactorsOf n == [n]       = True
Run Code Online (Sandbox Code Playgroud)

其中一个比另一个更有效吗?如果没有,是一个更好的风格?我的预感是,调用头并比较两个简单数字比调用cons和比较两个单例列表更快,所以我已经得到的将是最好的.但如果没有区别,我认为替代方案看起来更清洁了.

comparison performance haskell list

2
推荐指数
1
解决办法
483
查看次数

标签 统计

comparison ×1

haskell ×1

list ×1

performance ×1