향후 하스켈 버전에서 Data.Text
이 String
을 대체하게 될 것이라고 들었습니다. 내가 가지고있는 한 가지 문제점은 (++)
이 목록에만 정의되어 있다는 것입니다. 이 명 Text
들을 연결하기 위해, 나는 빨리 자세히 사용자됩니다'mappend'가없는 두 개의 Data.Texts를 결합하는 표준 방법
text1 `mappend` text2
를 사용해야합니다. 이상적으로 Text
에 ++
을 사용할 수 있기를 원하지만 그렇지 않은 경우 다른 대안이 무엇입니까? 나 자신의 중절 연산자를 정의 할 수는 있지만 표준 방법이 필요하다.
이름이 잘못 지정된 연산자입니다. '<>'는 "같지 않음"의 의미를 갖는다. 모든 Monoid에서 작동하도록'++ '를 일반화하는 것이 더 좋았을 것입니다. –
<>가 선택되었습니다. 왜냐하면 이미 monoidal 의미론이있는 예쁜 인쇄 라이브러리와 기존 코드를 손상시키지 않거나 이상한 편향을 가진 가장 눈에 띄지 않는 옵션이 이미 사용 되었기 때문입니다. 반대로 일반화 (++)는 우선 순위 레벨로 인해 꽤 멋진 인쇄 라이브러리를 만드는 방식으로 수행 될 수 없으며, haskell 98 이전에는 또 다른 의미가있었습니다. 지금 mplus를 호출하십시오. 우리가 다른 언어로 의미가있는 것들을 피한다면 우리는 남은 연산자가 없습니다! <<, >>, -,!, %, : 등의 연산자는 모두 다른 언어의 다른 의미를 가지고 있습니다. –
이상한데, 나는 그것을 사용하려하지만 범위 내에 있지 않다 : '<>''. GHC 7.10.3 – klappvisor