하스켈 타입 시스템의 이론을 이해하는 데 수학이 필요 했습니까?


9

최근 저는 Haskell에 깊은 관심을 가지게되었습니다.

새로운 개념 (예 : forall 키워드ST 모나드 )과 Haskell의 유형 시스템 을 배우려고 노력하는 동안 나는 계속해서 범주 이론람다 미적분학 에서 개념을 접하게 됩니다. 그래서 궁금합니다.

  1. Haskell의 유형 체계를 이해하는 데 중요한 다른 수학 분야는 무엇입니까?

  2. 이 수학에 대한 엄격한 연구를 포기하고 대신 특정 개념에 집중할 수 있습니까? (예 : 람다 미적분 자의 정량 자) 그렇다면 어떤 개념이 필수적입니까?

조만간 타입과 프로그래밍 언어 를 선택하기를 원 하지만, 적절하다고 생각되는 대체 독서 자료를 제안하십시오.


4
카테고리 이론은 Haskell을 알고 작업하는 데 반드시 필요한 것은 아니지만 몇 가지 기본 개념에 도움이 될 수 있습니다. 이 자료를 이해하는 유일한 수학의 범주는 범주 이론 (Category Theory) 자료이며, 거기에 뿌리를두고있을뿐 아니라 다른 수학에 대한 의존도는 거의 찾을 수 없습니다. 람다 계산법을 들고 varients 다른 람다와 관련된 다른 종류의 시스템을 연구하고, 그 이외의 읽기 이 SO의 대답 및 카테고리 이론에 대해 읽어보십시오.
Jimmy Hoffa

3
나는 기본 유형 시스템을 마스터하는 것에 너무 익숙하지 않을 것입니다. 최소한 모든 것을 알지 못하게하여 두 프로젝트 완료를 막지 마십시오. Haskell에서 몇 가지 간단한 프로젝트를 완료하면 그 뒤에 수학적 아름다움을 볼 수 있었고 그것을 이해하게 만들었습니다.
ChaosPandion

2
@ChaosPandion 나는 그 관점에 동의하지만, ST모나드에 코드를 작성해야 할 수도있는 프로젝트를 진행하고 있습니다 . 관련 형식 서명을 모두 이해하지 못하면 컴파일되는 코드를 작성하는 것이 까다로워서 형식 시스템에 대한 이해를 높이는 것이 현명하다고 생각했습니다.
Rob

3
@robjb-나는 당신에게 더 깊은 이해가 신중하다는 것에 분명히 동의합니다. 솔직히 저의 의견은 Haskell이 시도조차하기에는 너무 협박 할 수있는 일반 청중에게 더 많이 전달되었습니다.
ChaosPandion

답변:


11

아닙니다. Haskell을 이해하기 위해 범주 이론에 관한 책을 집어들 필요는 없습니다.

나는 몇 년 동안 Haskell을 사용해 왔으며 호기심에서 일부 범주 이론을 선택했지만 실제로는 필요하지 않습니다. 한 편으로,이 모든 추상화가 어떻게 "큰 그림"에 어떻게 들어 맞는지 보는 것이 좋지만, 나는 가지 않았다. "오 세상에 나는 이것을 Maybe카테고리에서 []s 로 profunctor로 만들면된다 . 공주님!".

이제 하스켈 타입 이론으로 무엇을하고 있는지에 따라 울타리가 있습니다.

하스켈을 배우고 있다면 타입 시스템의 모든 뉘앙스를 이해하려고하지 마십시오 . C ++ 템플릿 메타 프로그래밍을 먼저 배우는 것과 같습니다. 팬시 유형은 훌륭한 도구이지만 기능적 프로그래밍을 잘 이해하면 전형적 다형성을 이해하는 것보다 낫습니다.

이제 1 년 또는 2 년의 Haskell 이후에 Haskell의 유형 시스템 작동 방식에 대한 모든 미묘한 부분을 이해하려고한다고 가정 해 봅시다. 그렇다면 일부 유형 이론이 도움이 될 수 있습니다.

일이 어떻게 작동하는지에 대한 논리를 이해하는 데 도움이되며 솔직히 볼만한 가치가있는 컴퓨터 과학 IMO의 멋진 지점입니다. 당신은 당신이 관심있는 부분을 체리 선택하고 여전히 괜찮은 금액을 배울 수 있습니다.

Haskell의 경우 STLC, HM 유형 시스템 (시스템 F) 및 람다 큐브 (Haskell은 시스템 Fw iirc) 및 등 회귀 유형을 살펴 봅니다. 타입과 프로그래밍 언어는이 모든 것들을 시작하고 다루는 훌륭한 자료입니다.

쿨 에이드를 마시고 신진 유형 이론가라는 것을 알고 싶다면 Agda 또는 Coq를 찌르십시오. 이것들은 "종속 형"을 특징으로하며, Haskell보다 람다 큐브에서 한 걸음 더 먼 곳입니다. 종속 유형은 유형 이 용어에 종속 되도록합니다. 이것은 유형이 실제로 이론을 증명할만큼 강력하다는 것을 의미합니다. 호기심을 자극하는 인터넷 검색 "카레 하워드 동 형사상"은 몇 가지 흥미로운 결과를 가져옵니다.


Agda와 Coq에 대한 간단한 설명이 유용 할 것입니다.
ChaosPandion

@ChaosPandion 업데이트
Daniel Gratzer

좋아 보인다. 나는 그 이름이 많은 사람들의 관심을 끌기에 충분하지 않다고 말한 것으로 생각했다.
ChaosPandion
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.