On 2010 Oct 14, at 05:27, Brandon Moore wrote:

If you just want instances of questions you can keep it simple. How about something isomorphic to

data Instance = Instance { question : String, answer : String, check : String -> Bool }

At first blush, I hated all those Strings hiding the actual type information. Thinking about it a bit more, I think that's exactly right: when crossing the interface to the outside world, all data have type String: the user reads Strings and types back Strings.

A variety of things happens behind those strings, but at the interface, they're all strings.

You could make helper functions similar to your old code, like

addition : (Int , Int) -> Instance

You might handle problem families by taking a random number generator, or maybe using QuickCheck's Gen monad.

Oh, I love the idea of Using QuickGen's Gen for this purpose! (And it would finally give me the incentive to get to understand the beast properly.)

easyMultiplication : Gen Instance

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to