[Haskell-cafe] What's the best way to give up?

Arnar Birgisson arnarbi at gmail.com
Sat Sep 6 09:05:59 EDT 2008


Hi there,

On Sat, Sep 6, 2008 at 13:30, David F. Place <d at vidplace.com> wrote:
> 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


More information about the Haskell-Cafe mailing list