map -package:containers -package:base-prelude -package:foldl -package:dense-linear-algebra -package:basement -package:filepath -package:ghc -package:insert-ordered-containers -package:amazonka-core -package:pipes -package:conduit -package:regex-tdfa -package:dlist -package:psqueues -package:os-string -package:vector -package:invertible -package:unordered-containers -package:hedgehog -package:aeson -package:base-compat-batteries -package:stm-containers -package:case-insensitive -package:bloodhound

map f xs is the list obtained by applying f to each element of xs, i.e.,
map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
map f [x1, x2, ...] == [f x1, f x2, ...]
>>> map (+1) [1, 2, 3]
[2,3,4]
Map a function over a NonEmpty stream.
Combinator for the <map> element. Example:
map $ span $ toHtml "foo"
Result:
<map><span>foo</span></map>
O(n) map f xs is the ByteString obtained by applying f to each element of xs.
O(n) map f xs is the ByteString obtained by applying f to each element of xs
O(n) map f xs is the ShortByteString obtained by applying f to each element of xs.
O(n) map f t is the Text obtained by applying f to each element of t. Example:
>>> let message = pack "I am not angry. Not at all."

>>> T.map (\c -> if c == '.' then '!' else c) message
"I am not angry! Not at all!"
Performs replacement on invalid scalar values.
O(n) map f xs is the Stream Char obtained by applying f to each element of xs. Properties
unstream . map f . stream = map f
O(n) map f t is the Text obtained by applying f to each element of t. Performs replacement on invalid scalar values.
Map a function over a Stream
A Map from keys k to values a. The Semigroup operation for Map is union, which prefers values from the left operand. If m1 maps a key k to a value a1, and m2 maps the same key to a different value a2, then their union m1 <> m2 maps k to a1.
Type-level fmap for type-level functors. Note: this name clashes with Map from containers. FMap is provided as a synonym to avoid this.

Example

>>> data Example where Ex :: a -> Example  -- Hide the type of examples to avoid brittleness in different GHC versions

>>> data AddMul :: Nat -> Nat -> Exp Nat

>>> type instance Eval (AddMul x y) = (x TL.+ y) TL.* (x TL.+ y)

>>> :kind! Ex (Eval (Map (AddMul 2) '[0, 1, 2, 3, 4]) :: [Nat])
Ex (Eval (Map (AddMul 2) '[0, 1, 2, 3, 4]) :: [Nat]) :: Example
= Ex [4, 9, 16, 25, 36]
Invariant preserving version of Map from the containers packages, suitable for use with Uniplate. Use toMap to construct values, and fromMap to deconstruct values.
Monadic variant of mapAccumL.
The mapMaybe function is a version of map which can throw out elements. In particular, the functional argument returns something of type Maybe b. If this is Nothing, no element is added on to the result list. If it is Just b, then b is included in the result list.

Examples

Using mapMaybe f x is a shortcut for catMaybes $ map f x in most cases:
>>> import Text.Read ( readMaybe )

>>> let readMaybeInt = readMaybe :: String -> Maybe Int

>>> mapMaybe readMaybeInt ["1", "Foo", "3"]
[1,3]

>>> catMaybes $ map readMaybeInt ["1", "Foo", "3"]
[1,3]
If we map the Just constructor, the entire list should be returned:
>>> mapMaybe Just [1,2,3]
[1,2,3]
An associative operation NOTE: This method is redundant and has the default implementation mappend = (<>) since base-4.11.0.0. Should it be implemented manually, since mappend is a synonym for (<>), it is expected that the two functions are defined the same way. In a future GHC release mappend will be removed from Monoid.