Как бы это скомпилировать, если бы я мог использовать быструю проверку, чтобы проверить это? - PullRequest
0 голосов
/ 10 ноября 2019

Итак, я изучаю Haskell, у меня есть задача протестировать различные части кода, который я написал для университета. Я хотел использовать quickCheck prop_powers' для тестирования, но продолжаю получать сообщение «Не удалось найти модуль Test.QuickCheck», так как он должен быть готов через 30 минут, но я хотел бы спросить, будет ли работать quickCheck prop_powers', или он получитнеудачи. Соответствующий дамп кода ниже. Спасибо заранее за любую помощь и информацию.

power :: Integer -> Integer -> Integer
power n k
   | k < 0 = error "power: negative argument"
power n 0  = 1
power n k  = n * power n (k-1)

power1 :: Integer -> Integer -> Integer
power1 n k | k == 0    = 1
           | otherwise = product [n | _ <- [1 .. k]]

power2 :: Integer -> Integer -> Integer
power2 n k | k == 0    = 1
           | even k    = n * power n (div k 2)
           | odd k     = n * power n (k - 1)
           | otherwise = error "Bad Input"

prop_powers :: Integer -> Integer -> Bool
prop_powers n k | power n k == power1 n k
               && power n k == power2 n k = True
                | otherwise = False

powerTest :: Bool
powerTest = undefined

----------------------------------------------
prop_powers' n k = let k' = abs k in
                   power n k' == n ^ k'
                   && power1 n k' == n ^ k'
                   && power2 n k' == n ^ k'
...