하스켈 타입 클래스의 가능한 구현은 무엇이고 그들의 장점은 무엇입니까?


9

내가 아는 한, 유형 클래스 제약 조건이있는 Haskell 함수는 내부적으로 각 특정 유형 클래스의 필요한 구현으로 사전을받는 추가 인수가있는 함수로 컴파일됩니다.

  • 타입 클래스를 컴파일하는 다른 가능성이 있습니까?
  • 그렇다면, 그들의 장점은 무엇입니까?
  • 그리고 어떤 컴파일러가 그것들을 사용합니까?

4
이 주제에 관한 문헌이 꽤 있습니다. J. Peterson, M. Jones의 타입 클래스 구현 부터 시작해보십시오. 스칼라의 맥락에서 이것에 대해 이야기하지만 관련 작업에 대해 상당히 많은 섹션이있는 Oliveira et al의 Type Classes를 Objects and Implicits로 볼 수도 있습니다 .
마틴 버거

1
논문에 대한 링크를 찾았습니다 : 유형 클래스 구현. 존 피터슨과 마크 피 존스 .
Petr Pudlák

1
@MartinBerger이 답변을 하시겠습니까?
Suresh Venkat

다른 하나는 여기 에서 찾을 수 있습니다 .
마틴 버거

@Suresh Venkat, 나는이 두 가지가 최선인지, 심지어 좋은 대답인지 확실하지 않기 때문에 대답하고 싶지 않았습니다. 함수형 언어의 구현을 살펴본 지 오래되었습니다. 어쩌면 상주 FP 몸매의 일부는 차임 할 수 있습니다.
마틴 버거

답변:


8

JHC는 다른 접근법을 사용합니다. 컴파일러의 중간 언어는 유형과 값 사이에 구별이없는 종속적으로 유형이 지정된 람다 미적분입니다. 따라서 JHC는 함수의 유형 매개 변수에 대한 케이스 분석을 수행하고 올바른 오버로드 된 함수를 직접 호출 할 수 있습니다.

JHC 웹 사이트 는 표준 사전 전달 구현에 대한 장점뿐만 아니라 구현에 어느 정도 깊이 있습니다.

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