[Haskell-cafe] "Identifier" generators with QuickCheck

Jonathan Cast jcast at ou.edu
Tue Jul 24 09:55:33 EDT 2007


On Tuesday 24 July 2007, J. Pablo Fernández wrote:
> Hello Haskellers,
>
> I want to make a QuickCheck generator that creates identifiers, basically
> [a-zA-Z] as the first character and then [a-zA-Z0-9-_] for a total of 63
> characters. So, I've got up to:
>
> do s <- choose (1, 63 :: Int)
>         elements validFirstChars
> where validFirstChars = ['a'..'z'] ++ ['A'..'Z']
>       validChars = validFirstChars ++ "_-" ++ ['0'..'9']
>
> which of course only gives me one random character. I want both, the
> characters, and the length to be random.

do
   n <- choose (1, 63)
   replicateM $ elements validFirstChars

Jonathan Cast
http://sourceforge.net/projects/fid-core
http://sourceforge.net/projects/fid-emacs


More information about the Haskell-Cafe mailing list