Sono nuovo di Haskell. È molto bello finora, ma sto eseguendo il copia-incolla delle mie proprietà QuickCheck, e vorrei correggerlo.Come posso limitare i parametri QuickCheck, ad es. usare solo valori non negativi?
Ecco un esempio inventato:
prop_Myfunc :: [Int] -> (Int,Int) -> Bool
prop_Myfunc ints (i,j) = ints !! i == ints !! j
Questo non funzionerà perché QuickCheck genera numeri negativi, così ho ottenere
*** Failed! (after 2 tests and 2 shrinks):
Exception:
Prelude.(!!): negative index
ho cercato di google per soluzioni a questo, e ho trovato eg NonNegative e ==>, ma non capisco come funzionano.
Come posso limitare l'esempio precedente in modo che i e j non siano mai negativi? E anche, così che nessuno dei due è troppo alto? Cioè: 0 <= i,j < length ints
Penso che intendiate '0 <= i, j
ErikR
@ user5402 Sì, grazie! Lo cambierò. Controllerà la tua risposta il prima possibile, sembra molto buona. –