Имам нужда от някои предложения за това как мога да създам произволен генератор за типа данни Foo, така че списъкът с Boo никога да не е празен?
data Boo = Boo Float Float Float
data Foo = Foo Float Float Float [Boo]
Имам нужда от някои предложения за това как мога да създам произволен генератор за типа данни Foo, така че списъкът с Boo никога да не е празен?
data Boo = Boo Float Float Float
data Foo = Foo Float Float Float [Boo]
Можете да използвате функцията listOf1
, за да получите генератор, който генерира непразни списъци и да го използвате за дефиниране на подходящ екземпляр Arbitrary
, като:
import Test.QuickCheck
import Control.Applicative
instance Arbitrary Boo
instance Arbitrary Foo where
arbitrary = Foo <$> arbitrary <*> arbitrary <*> arbitrary <*> listOf1 arbitrary