Haskell 快速检查:从给定池生成由字符组成的字符串

Haskell 快速检查:从给定池生成由字符组成的字符串,haskell,testing,quickcheck,Haskell,Testing,Quickcheck,现在QuickCheck生成所有类型的字符串,但我只想测试我的属性,以用于我的字符池中的字符串 我现在的输出是: propertyForStringsFromMyCharPool :: String -> Bool -- implementation main = T.quickCheck propertyForStringsFromMyCharPool 但这并不是真正的失败,因为-未包含在我的字符集中,并且不应该首先生成包含它的字符串 我试着读了一遍,但都很抽象,很难,我没有找到

现在QuickCheck生成所有类型的字符串,但我只想测试我的属性,以用于我的字符池中的字符串

我现在的输出是:

propertyForStringsFromMyCharPool :: String -> Bool
-- implementation

main = T.quickCheck propertyForStringsFromMyCharPool
但这并不是真正的失败,因为
-
未包含在我的字符集中,并且不应该首先生成包含它的字符串


  • 我试着读了一遍,但都很抽象,很难,我没有找到解决办法

  • 我已经看过了,但它似乎有太多的代码用于看似简单的问题,以至于我担心它设计过度了

    • 我想你可以用

      *** Failed! Falsifiable (after 3 tests and 2 shrinks):    
      "-"
      
      结合

      elements :: [a] -> Gen a
      
      因此,您的
      字符串
      生成器可能看起来像

      listOf :: Gen a -> Gen [a]
      
      我想你可以用

      *** Failed! Falsifiable (after 3 tests and 2 shrinks):    
      "-"
      
      结合

      elements :: [a] -> Gen a
      
      因此,您的
      字符串
      生成器可能看起来像

      listOf :: Gen a -> Gen [a]
      

      我刚刚在粘贴箱中看到了您的代码-请命名您的函数
      encode
      /
      decode
      ,并为
      Brainf***
      OoO
      添加一些
      newtype
      -别名,以便
      String
      配合使用。事实上,我担心我编写的代码的质量。如果您能在Codereview上给我一些建议,我将不胜感激->我刚刚在粘贴箱中看到了您的代码-请命名您的函数
      encode
      /
      decode
      ,并为
      Brainf***
      oo
      字符串添加一些
      newtype
      -别名。事实上,我担心质量我写的代码的一部分。如果您能在Codereview->