gpt4 book ai didi

Haskell,QuickCheck,伪造(错误的)属性 :

转载 作者:行者123 更新时间:2023-12-04 22:45:44 28 4
gpt4 key购买 nike

有没有办法伪造这个(错误的)属性:

prop :: Eq a => [a] -> Bool
prop xs = reverse xs == xs

当我使用 QuickCheck 和后来的 VerboseCheck 时,它提供了 100 种不同的形式:
[(),(),(),(),(),(),(),(),(),(),(),(),(),(),()]

通过:
最终结果是:
+++ OK, passed 100 tests.

最佳答案

正好

  • 如果您尝试在 GHCi 中对其进行评估,则必须选择特定的实例类型 Eq a使用,并与 ExtendedDefaultRules扩展通常在 GHCi 中启用,它选择 () .
  • 对于类型 () ,因为它只有一个(非底部)值,所以这个命题实际上是真的。

  • 最简单的解决方法是通过提供类型注释来选择(几乎)任何其他类型:
    Prelude Test.QuickCheck> quickCheck (prop :: [Int] -> Bool)
    *** Failed! Falsifiable (after 4 tests and 3 shrinks):
    [0,1]

    关于Haskell,QuickCheck,伪造(错误的)属性 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26697039/

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