2016-12-03 8 views
6

私は " (ドット)を機能構成として表示する。私は "|" (またはパイプ)を「or」ガード導入構文(hereから)として扱いますが、このオペレータを私が理解できない方法で使用する私はsaw an answer on http-conduits using ".|"です。ドットパイプとは何ですか? "|"ハスケルの演算子?

など、私が発見した導管のためのその他の参考文献:

は... "、 "$ ="、 "$$" のような構文を提案します= $ = "、" = $ "を使用してデータフローのコンジットを結合します。

私はこれを "。|この演算子とはどのように動作しますか?

「。| haskell」または「 'dot pipe' haskell」または「 'dot pipe' haskell operator conduits」のグーグルリングはあまり成功しませんでした。

答えて

9

これは、融合のためにconduitが使用する(最近の)新しい構文です。作者はそれほど前にblog-postを書きました。ポストから引用すると、彼が提案した(そして最終的にこれをしなかった)

=$$=を交換し、そして=$=オペレーター - .|演算子と - すべて各 他の同義語です。これはUnixの シェルからの直観を借りています。パイプ演算子はあるプロセスから別のパイプへのパイプデータを示します。 です。その類推はコンジットのために本当にうまくいくので、 を借りてみませんか?あなたは今までのオペレータを検索する必要がある場合(私たちは、これらの演算子のすべてを呼び出す「融合」を)

余談として、HayooHoogleはどこへ行く場所です。 Stackage Hoogle(ありがとう@duplode)もあります。これにより、特定のリゾルバの演算子を検索できます(これは最近の変更であるため特に便利です)。

+3

[Stackage Hoogle](https://www.stackage.org/lts-7.11/hoogle?q=.%7C)もいいオプションです。デフォルトでは、haskell.orgよりも幅広いパッケージになっています1。 – duplode

+1

ありがとう、@アレック。もしあなたが私に不満を感じ続けるなら、私たちは、スタックオーバーフローのQ&Aセッションが、インターネット上の他の場所で利用可能な古いバージョンや実装の廃止された廃止された構文と戦略を克服し、正しいドキュメント。:) – Mittenchops

+0

彼らはオペレータ "パイプ"を呼び出す方が良いようです:/ – jberryman

1

.|は、Conduitライブラリによって導入され、fuseと同義です。

fuse 
    :: Monad m => Conduit a m b -> ConduitM b c m r -> ConduitM a c m r 

fuse.演算子は関数の組成物に使用されるconduit S同様の組成のために使用されます。 最後に、.|は、とにかく同義語だった$=,=$、および=$=を置き換える新しい構文です。

関連する問題