lens-5.1: Lenses, Folds and Traversals
Copyright(C) 2014-2016 Edward Kmett and Eric Mertens
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilitynon-portable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Lens.Internal.List

Description

This module provides utility functions on lists used by the library implementation.

Synopsis

Documentation

ordinalNub Source #

Arguments

:: Int

strict upper bound

-> [Int]

ordinals

-> [Int]

unique, in-bound ordinals, in order seen

Return the the subset of given ordinals within a given bound and in order of the first occurrence seen.

Bound: 0 <= x < l

>>> ordinalNub 3 [-1,2,1,4,2,3]
[2,1]

stripSuffix :: Eq a => [a] -> [a] -> Maybe [a] Source #

\(\mathcal{O}(\min(m,n))\). The stripSuffix function drops the given suffix from a list. It returns Nothing if the list did not end with the suffix given, or Just the list after the suffix, if it does.

>>> stripSuffix "bar" "foobar"
Just "foo"
>>> stripSuffix "foo" "foo"
Just ""
>>> stripSuffix "bar" "barfoo"
Nothing
>>> stripSuffix "foo" "barfoobaz"
Nothing