Я новичок в Хаскеле. Пока это очень хорошо, но я сталкиваюсь с копированием и вставкой для моих свойств QuickCheck, и я хотел бы это исправить.
Вот готовый пример:
prop_Myfunc :: [Int] -> (Int,Int) -> Bool
prop_Myfunc ints (i,j) = ints !! i == ints !! j
Это не сработает, потому что QuickCheck генерирует отрицательные числа, поэтому я получаю
*** Failed! (after 2 tests and 2 shrinks):
Exception:
Prelude.(!!): negative index
Я пытался найти решения для этого в Google, и я нашел, например. Неотрицательный и ==> , но я не понимаю, как они работают.
Как я могу ограничить приведенный выше пример, чтобы i и j никогда не были отрицательными? И еще, чтобы ни было слишком высоко? То есть: 0 <= i,j < length ints
0 <= i,j < length ints
- person ErikR   schedule 27.11.2014