2016-07-11 9 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

関連する問題