Data.Text
は今後のHaskellバージョンでString
を置き換えると聞いています。私がこれを持っている1つの問題は、リストのためだけに(++)
が定義されていることです。 2つのText
Sを連結するために、私はすぐにVERBOSEます2つのData.Textをmappendなしで結合する標準的な方法
text1 `mappend` text2
を使用する必要があります。理想的にはText
に++
を使用したいと思っていますが、そうでなければ何が別の選択肢ですか?私は自分自身の中置演算子を定義することができますが、これを行う標準的な方法が欲しいです。
これは不適切な名前の演算子です。 '<>'は "not equal"と同じ意味を持ちます。全てのモノイドを扱うには '++'を一般化する方がいいでしょう。 –
<>が選択されました。なぜなら、monoidalセマンティクスを備えたかなりの印刷ライブラリと、既存のコードを破らない、または奇妙な偏りを持つ最も目障りなオプションが既に使用されていたからです。一方、一般化(++)は、優先レベルのためにきれいな印刷ライブラリを作成する方法では行えません。また、haskell 98の前には別の意味がありました。今すぐmplusを呼び出してください。私たちが他の言語で意味を持つものを避ければ、演算子は残っていません! <<, >>、 - 、!、%、:などの演算子は、他の言語でも他のセマンティクスを持っています。 –
奇妙な、私はそれを使用しようとしていますが、スコープ内にはない: '<>' '。 GHC 7.10.3 – klappvisor