«typeclass» 태그된 질문

Haskell의 유형 클래스는 임시 다형성을 지원하는 언어 메커니즘입니다. Scala, Coq 및 Isabelle에도 존재합니다.

10
Java의 인터페이스와 Haskell의 유형 클래스 : 차이점과 유사점?
Haskell을 배우는 동안 Haskell에서 비롯된 훌륭한 발명품 인 클래스 클래스를 발견했습니다 . 그러나 클래스 유형의 Wikipedia 페이지에서 : 프로그래머는 클래스에 속하는 모든 유형에 대해 존재해야하는 함수 또는 상수 이름 세트를 해당 유형과 함께 지정하여 유형 클래스를 정의합니다. 나에게 Java의 인터페이스 에 다소 가까운 것 같습니다 ( Wikipedia의 Interface (Java) 페이지 …

2
Haskell의 Comonad typeclass는 무엇입니까?
Haskell의 Comonad typeclass는 무엇입니까? 에서 Comonad에서와 같이 comonad 패키지 Control.Comonad (A Comonad의 typeclass는 또한 제공하는 다른 패키지의 설명은 환영합니다). 나는 Comonad에 대해 막연하게 들었지만, 내가 그것에 대해 정말로 아는 extract :: w a -> a것은 Monad의 return :: a -> m a. "실제"코드에서 Comonad의 "실제"사용에 대한 보너스 포인트.

3
Haskell에서 파생은 어떻게 작동합니까?
Haskell의 ADT ( Algebraic Data Types )는 자동으로 일부 유형 클래스 (예 :Show,Eq)에서 파생 되어 인스턴스가 될 수있습니다. data Maybe a = Nothing | Just a deriving (Eq, Ord) 내 질문은 이것이 어떻게 deriving작동하는지입니다. 즉, Haskell이 파생 ADT를 위해 파생 된 유형 클래스의 함수를 구현하는 방법을 어떻게 알 수 있습니까? …

6
Haskell의 고아 인스턴스
-Wall옵션을 사용하여 내 Haskell 애플리케이션을 컴파일 할 때 GHC는 고아 인스턴스에 대해 다음과 같이 불평합니다. Publisher.hs:45:9: Warning: orphan instance: instance ToSElem Result 타입 클래스 ToSElem는 내 것이 아니며 HStringTemplate에 의해 정의됩니다 . 이제이 문제를 해결하는 방법 (인스턴스 선언을 Result가 선언 된 모듈로 이동)을 알고 있으며 GHC가 고아 인스턴스를 피하는 것을 …
87 haskell  ghc  typeclass 


1
유형 클래스 MonadPlus, Alternative 및 Monoid의 차이점은 무엇입니까?
표준 라이브러리 Haskell typeclasses MonadPlus, Alternative및 Monoid각각은 본질적으로 동일한 의미를 가진 두 가지 메서드를 제공합니다. 빈 값 : mzero, empty, 또는 mempty. 운영자 a -> a -> a: 함께 typeclass 값을 결합 mplus, <|>또는 mappend. 세 가지 모두 인스턴스가 준수해야하는 다음 법률을 지정합니다. mempty `mappend` x = x x `mappend` …

1
정량화 된 구속 조건을 가진 Ord 도출 (forall a. Ord a => Ord (fa))
정량화 된 제약 조건으로 Eq (A f)잘 파생 될 수 있습니까? 그러나 Ord (A f)를 얻으려고하면 실패합니다. 제약 조건 클래스에 수퍼 클래스가있을 때 정량화 된 제약 조건을 사용하는 방법을 이해하지 못합니다. Ord (A f)수퍼 클래스가있는 클래스와 다른 클래스를 어떻게 파생 합니까? > newtype A f = A (f Int) > …

1
완전히 종속적 인 연결 만들기
연결에 대한 좋은 사실은 방정식에서 두 가지 변수를 아는 경우입니다. a ++ b = c 그런 다음 세 번째를 알고 있습니다. 나는 기능적으로 의존성을 사용하기 위해이 아이디어를 내 자신의 concat에서 포착하고 싶습니다. {-# Language DataKinds, GADTs, FlexibleContexts, FlexibleInstances, FunctionalDependencies, KindSignatures, PolyKinds, TypeOperators, UndecidableInstances #-} import Data.Kind (Type) class Concatable (m …

1
이 수동으로 정의 된 HasField 인스턴스에서“제한 트릭”이 작동하지 않는 이유는 무엇입니까?
렌즈 와 GHC 를 사용하는이 이상한 코드가 있습니다 . {-# LANGUAGE DataKinds, PolyKinds, FlexibleInstances, UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module Main where import Control.Lens import GHC.Records data Glass r = Glass -- just a dumb proxy class …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.