, 나는 여기에하스켈 임의 typeclass 인스턴스 반환 형식
quickCheck (semigroupAssoc :: IdentAssoc)
로 호출,
semigroupAssoc :: (Eq m, S.Semigroup m) => m -> m -> m -> Bool
semigroupAssoc a b c =
(a S.<> (b S.<> c)) == ((a S.<> b) S.<> c)
type IdentAssoc = Identity String -> Identity String -> Identity String -> Bool
의 임의 typeclass 인스턴스
instance (Arbitrary a) => Arbitrary (Identity a) where
arbitrary = do
a <- Test.QuickCheck.arbitrary
return (Identity a)
을 quickcheck 테스트를한다 쓰고 있어요
제 질문은 제 임의의 인스턴스에서 (Identity a) 또는 그냥 a를 반환 할 수 있다는 것입니다. (Identity a)는 정확하지만 컴파일러 오류가없고 실행시 무한 루프가 발생합니다. 왜 이런거야?
동일한 기능을 다시 호출하기 만하면됩니다. –
다시 부르는 함수는 무엇입니까? – tesserakt
방금 정의한 방. –