2016-09-14 4 views
5

그냥 느릅 코드에서 슬쩍 복용하고 다음과 같은 유형의 정의를 건너 왔어요 :느릅 나무 재귀 유형 정의

type Cmd msg = Cmd 

난 그냥이 어떻게 작동하는지 이해 수없는 것. 아무도 설명 할 수 없나요?

답변

10

재귀 적 유형 정의가 아니며 추가 정보가없는 Cmd라는 레이블 하나가있는 공용체 유형으로 Cmd 유형을 정의합니다. 일반적으로 이와 같은 정의는 유형이 elm에서 개별적인 의미가없는 값을 나타냄을 나타 내기위한 것입니다.

이 경우 형식은 Cmd의 모든 작업이 플랫폼 코드에 숨겨져 있으므로 사용자가 Cmd 값을 검사하거나 제거 할 필요가 없기 때문에 형식이 정의됩니다. Cmd 값의 형식 안전성을 유지하기 위해 Cmd는 형식 변수를 노출해야합니다. Cmd 값은 Cmd.map을 통해 해당 형식의 메시지를 생성 할 수있는 약속을 캡슐화하기 때문입니다.