#4189: Add (<.>) operator (generalizing (.) to Functor)
Maciej Marcin Piechotka
uzytkownik2 at gmail.com
Mon Aug 2 04:10:56 EDT 2010
On 01/08/10 22:15, Stephen Tetley wrote:
> On 1 August 2010 20:57, Maciej Marcin Piechotka <uzytkownik2 at gmail.com> wrote:
>> Hmm. Do you have an idea for better name?
> blackbirdA ?
> For the function instance of Applicative its the blackbird combinator,
> unless I made a miscalculation when rewriting the signature.
Hmm. Looks like that but:
- blackbirdA does not save much space
- f `blackbirdA` g is *more* confusing then (f <$>) . g/ fmap f . g:
const 1 <.> print <=< (read :: String -> Int) <.> readFile
fmap (const 1) . print <=< fmap (read :: String -> Int) . readFile
(const 1 <$>) . print <=< ((read :: String -> Int) <$>) . readFile
const 1 `blackbirdA` print <=< (read :: String -> Int) `blackbirdA`
First shows the nearly-normal Haskell function pipeline. It's nearly:
const 1 . print . read . readFile
from non-pure languages (with added pureness)
The last one is IMHO unreadable. It is much longer and does not
'graphically' represent flow of information.
- blackbird is rather not widely known reference.
PS. I know, I know...
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 900 bytes
Desc: OpenPGP digital signature
Url : http://www.haskell.org/pipermail/libraries/attachments/20100802/95a2552b/signature.bin
More information about the Libraries