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