import Math.NumberTheory.Primes (factorise)
import System.Timeout (timeout)
import Control.Monad (liftM)
type RetType = [(Integer, Int)] -- factorise's return type
-- proposed function
timedFact :: Integer -> Integer -> Either RetType Integer
timedFact u n = ?
尝试理解如何编写一个包装函数来对因数分解进行计时,如果成功,则返回
RetType
,否则返回Integer
(传入的内容)。我对Haskell有点陌生。我知道超时需要在IO
Monad中工作,但我无法将适当的结果带回。(注意:我不是非用Either
不可,Maybe RetType
也可以)。感谢任何帮助。