last package:base-compat
Extract the last element of the stream.
Extract the last element of a list, which must be finite
and non-empty.
>>> last [1, 2, 3]
3
>>> last [1..]
* Hangs forever *
>>> last []
*** Exception: Prelude.last: empty list
WARNING: This function is partial. You can use
reverse with
case-matching,
uncons or
listToMaybe instead.
Maybe monoid returning the rightmost non-
Nothing value.
Last a is isomorphic to
Dual (First
a), and thus to
Dual (Alt Maybe a)
>>> getLast (Last (Just "hello") <> Last Nothing <> Last (Just "world"))
Just "world"
Beware that
Data.Monoid.Last is different from
Data.Semigroup.Last. The former returns the last
non-
Nothing, so
x <> Data.Monoid.Last Nothing =
x. The latter simply returns the last value, thus
x <>
Data.Semigroup.Last Nothing = Data.Semigroup.Last Nothing.
Beware that
Data.Semigroup.Last is different from
Data.Monoid.Last. The former simply returns the last
value, so
x <> Data.Semigroup.Last Nothing =
Data.Semigroup.Last Nothing. The latter returns the last
non-
Nothing, thus
x <> Data.Monoid.Last Nothing =
x.