From d30d6a39abab0b078de7b8b52e6837400bfd5fbf Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Wed, 14 Jun 2017 07:33:23 +0200 Subject: [PATCH] add (<&>), fixes issue #53 (#56) --- docs/Functor.md | 1 + src/Protolude.hs | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/Functor.md b/docs/Functor.md index 44c441905..40a80c248 100644 --- a/docs/Functor.md +++ b/docs/Functor.md @@ -35,6 +35,7 @@ void :: Functor f => f a -> f () ```haskell foreach :: Functor f => f a -> (a -> b) -> f b +(<&>) :: Functor f => f a -> (a -> b) -> f b ``` diff --git a/src/Protolude.hs b/src/Protolude.hs index 20ac9aba8..3d2cc1a8f 100644 --- a/src/Protolude.hs +++ b/src/Protolude.hs @@ -16,7 +16,7 @@ module Protolude ( print, throwIO, throwTo, - foreach, + foreach, (<&>), show, pass, guarded, @@ -570,6 +570,13 @@ throwTo tid e = liftIO (Control.Exception.throwTo tid e) foreach :: Functor f => f a -> (a -> b) -> f b foreach = flip fmap +-- | Infix version of foreach. +-- +-- @<&>@ is to '<$>' what '&' is to '$'. +infixl 4 <&> +(<&>) :: Functor f => f a -> (a -> b) -> f b +(<&>) = foreach + -- | Do nothing returning unit inside applicative. pass :: Applicative f => f () pass = pure ()