2016-07-11 8 views
0

이 코드는 보간 연산자로 <>을 사용하는 것으로 보입니다. https://github.com/hlian/linklater/blob/master/examples/app/JointPhotographicExpertsGroupTonga.hs알 수없는 haskell 연산자; `<>`

이 연산자에 대한 설명서 나 출처를 찾을 수 없습니다. 어떤 아이디어가 무엇인지/어디에서 왔는지.

+0

[Data.Monoid] (https://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Monoid.html)의 것입니다. – pdexter

+0

암시 적 임포트는 끔찍합니다. 그것은 haskell이 인정하는 것은 유감스러운 일입니다. – Igor

답변

3

전통적으로 <>은 주로 Data.Monoid에 정의 된 기능입니다.

(<>) :: Monoid a => a -> a -> a 
(<>) = mappend 

그러나 semigroups 패키지 긴 Data.Semigroup에서 Semigroup 클래스의 방법으로 사용되었다. GHC 8 현재 Data.Semigroupbase 패키지로 옮겼습니다. 현재 Semigroup 수퍼 클래스를 Monoid으로 만드는 계획이 있습니다. 이 작업이 완료되면 <> 함수는 완전히 <> 메서드로 바뀝니다.

2

hayoo을 사용하면 Hackage 패키지의 정의를 검색 할 수 있습니다.

mappend 연산자가 Data.Monoid에 정의 된 것으로 보입니다.

+0

hayoo 멋진입니다! 감사합니다 –

+0

mappend가 ++보다 더 융통성이 있다는 것을 이해하고 있지만,이 경우 완전히 완벽하지 않았습니까? –

+0

문자열 사용과 텍스트 사용 사이를 쉽게 전환 할 수 있습니다. '++'에서 'Text.append'로 변경하지 않아도됩니다. – ErikR