2017-12-13 20 views
3

저는 함수 유형에 대해 프로그래머를위한 범주 이론을 읽었습니다.카레는 보편적 인 구조를위한 인수 분해자입니다.

그는 말한다 :

주의가 카레 함수 객체의 보편적 건설을위한 factorizer입니다.

factorizer :: ((a, b)->c) -> (a->(b->c)) 
factorizer g = \a -> (\b -> g (a, b)) 

: 이것은 이 양식을 다시 않다면 특히 명백하다 (참고로 :. factorizer는 후보에서 인수 분해 기능을 생산)을

이 얼마나 'factorizer'이고 ' 보편적 인 건설 '?

그가 카레에 대해 설명하려고하는 것은 무엇입니까?

+0

어디서 읽을 수 있습니까? 관심이 있으신 분 : – Netwave

+3

보편적 인 건축 및 인수 분해 도구가 소개되었습니다. (https://bartoszmilewski.com/2015/01/07/products-and-coproducts/). [도움이 될 수도 있습니다.] (https://ncatlab.org/nlab/show/universal+construction). –

+0

@DanielSanchez https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/ –

답변

1

보편적 인 구조 및 인수 분해자의 개념은 이전 장에서 소개되었습니다 (특히 제품 및 공동 제품에 관한 내용).

간략히 보편적 인 구조는 주어진 속성을 공유하는 모든 가능한 후보를 비교합니다. 여기서 후보자는 z의 변형 자 g(z × a)에서 b으로가는 객체입니다. 가장 적합한 후보는 eval이라고하는 변위를 갖는 (a=>b)으로 표시된 대상입니다.

범용 속성과 함께 g 후보 z위한 그림에 주어진 도면을 factorizes 고유 h morphism에 있다는 것이다. 인수 분해자는 특정 카테고리에서이 h이 주어진 zg을 얻는 방법입니다. Haskell에서 g은 함수 ((a, z)-> b)이고 h은 함수 (z -> (a -> b))입니다. 따라서 변수의 이름 변경과 제품의 대칭에 이르기까지 factorizer는 정확하게 curry의 서명을 갖습니다.