Tôi có một định nghĩa kiểu đơn giản:Làm thế nào để tạo ra các trường hợp tùy tiện của một kiểu đơn giản cho QuickCheck
data Cell = Cell {
x :: Int,
y :: Int
} deriving (Show)
tôi không thể sử dụng Cell
như một đầu vào cho một tài sản QuickCheck, có lẽ vì QuickCheck không biết làm thế nào để tạo ra các giá trị Cell.
Sự hiểu biết của tôi là tôi cần tạo Cell làm phiên bản của kiểu chữ là Arbitrary
.
Làm cách nào để thực hiện điều đó, ví dụ: nếu tôi muốn Tạo ô bằng các giá trị dương cho x và y?
Đây là nơi tôi sẽ * thực sự * muốn sử dụng cú pháp applicative để thay thế. –
Ngoài ra, hãy xem xét việc viết một thực hiện cho 'thu nhỏ'. Ít quan trọng ở đây, có lẽ, nhưng tiết kiệm rất nhiều nỗ lực cho một số trường hợp. –