最初は宿題なので、あまりあげないでください!私はこれを理解し、他の誰かのコードをコピーしないようにする必要があります。
カードのデッキを作成する必要があります。そして、使用するコードを与えられましたが、それらを機能させることができません。2012年から2013年のショーで最高のカードデッキを作成できることを意味しますが、与えられたコードを使用する必要があり、それを変更することは許可されていないため、まったく役に立ちません.
(私は Read と Enum を使用してカードのデッキを作成しましたが、それは見事に見えますが、この課題ではできません)
最後にいくつかのエラー メッセージが表示されます。
import Test.QuickCheck
--DECK OF CARDS
data Suit = Hearts | Spades | Diamonds | Clubs
deriving (Eq, Show)
data Card = Card Rank Suit
deriving (Eq, Show)
data Rank = Numeric Integer | Jack | Queen | King | Ace
deriving (Eq, Show)
instance Arbitrary Rank where
arbitrary = frequency [ (1, return Jack)
, (1, return Queen)
, (1, return King)
, (1, return Ace)
, (9, do n <- choose (2, 10)
return (Numeric n))
]
--MY OWN CODE
type Deck = [Card]
deck :: Deck
deck = [Card v s | v <- arbitrary Rank, s <- Suit]
ロードしようとすると、次のようになります。
Prelude> :l test4
[1 of 1] Compiling Main ( test4.hs, interpreted )
test4.hs:31:35: Not in scope: data constructor `Rank'
test4.hs:31:46: Not in scope: data constructor `Suit'
Failed, modules loaded: none.
どこが間違っていますか?基本的な何かが欠けていますか?もしそうなら、どこでそれを読むのですか?
あらゆる提案やアイデアに感謝します!