3

I am relatively new to Haskell and came across the following problem. Given a function f from a to b (let's say from Int to Int) and an element x in the domain.

Ideally, what I would like to do: If the function f given input x evaluates in finite time to a y, I would like to return "Just y". If the function f given input x enters an infinite loop, I would like to return "Nothing".

I know that this task is impossible as I stated it because the Halting problem is undecidable. But what should be possible is the following: Take a function f, try to evaluate it at input x, try for 5 seconds and if you're not finished after 5 seconds, abort and return Nothing.

Is there a way to do this?

Cosine
  • 131
  • 2

0 Answers0