2016-02-22 15 views
5

Tytuł mówi wszystko. Widziałem, że niektórzy ludzie najwyraźniej używają Data.Conduit.List.map id jako kanału identyfikacyjnego, ale czy jest to zalecany sposób przesyłania danych w niezmienionej postaci?Czy istnieje kanał identyfikacyjny?

+1

Sądząc po implementacji 'Data.Conduit.List.map', powiedziałbym" tak ". – arrowd

Odpowiedz

5

Najprościej napisać przewód tożsamość jest prawdopodobnie:

awaitForever yield 

bo to nie wymaga dodatkowego importu.

Definicja Data.Conduit.List.map jest bardzo podobna:

mapC f = awaitForever $ yield . f 

(. Różnica między mapC i map ma coś z makrami CPP zdefiniować fuzję)

Kiedy optymalizacji jest włączona (-O1) wydaje się, że obie opcje dają identyczny kod, więc to tylko kwestia gustu.

+3

Byłoby fajnie, gdyby "idC = awaitForever yield" zostały dodane do biblioteki. Może stworzę dla tego PR. – Mark

+0

@Zaznacz jakieś wiadomości dotyczące PR? – SwiftsNamesake

+0

@SwiftsNamesake, zobacz https://github.com/snoyberg/conduit/issues/255 – Mark

Powiązane problemy