我正在学习快速检查(还有haskell),我有以下代码:
newtype Urls = FN { unFN :: String } deriving Show
instance Arbitrary Urls where
arbitrary = do protocol <- elements ["http://"]
name <- listOf $ elements ['a'..'z']
domain <- elements [".com",".com.br",".net"]
return (FN (protocol ++ name ++ domain))
我的问题是关于如何使 listOf 永远不会返回空(NonEmpty),因为现在对于生成的一些数据,我会收到像 {unFN = "http://.net"} 这样的字符串,简化我希望该名称永远不会为空