Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there identity conduit?

The title says it all. I've seen that some people apparently use Data.Conduit.List.map id as identity conduit, but is this the recommended way to stream data unchanged?

like image 950
Mark Karpov Avatar asked Feb 22 '16 11:02

Mark Karpov


1 Answers

The simplest way to write an identity conduit is probably:

awaitForever yield

because this doesn't require an extra import.

The definition of Data.Conduit.List.map is very similar:

mapC f = awaitForever $ yield . f

(The difference between mapC and map has something to do with CPP macros to define fusion.)

When optimization is on (-O1), it appears both options result in identical code, so it's just a matter of taste.

like image 151
xnyhps Avatar answered Oct 12 '22 10:10

xnyhps