2012-10-04 2 views
11

이 새로운 데이터 유형에 대한 정의입니다 :haskell에서, 무엇이 : + : 데이터 유형 정의에서 의미합니까?

data Total a = Total a :+: Total a 
       |... 

기능 : + : 평균을 이러한 유형의 정의에?

+0

표준 하스켈에서는 유효하지 않습니다. 이상한 GHC 확장입니다 :) – singpolyma

+0

@singpolyma : 표준 [Haskell 98 구문] (http://www.haskell.org/onlinereport/syntax-iso.html) (_consym_ production 참조). 결국리스트의':'생성자는 이것의 특별한 경우 일 뿐이다. 아마도 당신은'TypeOperators'를 생각하고 있었을까요? – hammar

+0

@hammar 오, 흠, 나는'TypeOperators'에 대해 생각하고있었습니다. 데이터 생성자에 대한 연산자 사용이 표준인지는 몰랐습니다. 그것은 매우 추합니다. 보통 추악한 것은 확장이다. – singpolyma

답변

9

중개자 형식으로 작성된 데이터 생성자입니다. :으로 시작하면 연산자를 생성자로 사용할 수 있습니다.

+5

':'는 대문자이다. D –

+0

a : after +? – Sam

+0

GHC 7.6에서,'TypeOperators' 확장은 이제 모든 삽입 연산자를 "대문자"로 취급합니다. (중온 연산자를 타입 변수로 사용한 기존 코드를 깨뜨림 ...) –

관련 문제