
Hi there,
On Sat, Sep 6, 2008 at 13:30, David F. Place
If there is a solution, it finds it in a few seconds. If there is no solution, it goes away for days proving that. So, I'd like to give up on it if it doesn't return in a few seconds. I can think of several ways of doing that. I could keep a tally of the number of variable assignments and give up when it reaches an impossibly huge number. I could change the type to a -> IO (Either a a ) and use getCPUTime.
Is there a standard way to do this? Can you think of another way to do it?
I don't know, but this seems relevant: http://www.haskell.org/pipermail/haskell-cafe/2005-October/011946.html I'd make a generic (i.e. higher-order) function that handles the timeout for any computation. i.e. timeout :: (a -> b) -> Int -> a -> IO (Maybe b) or similar. Arnar