arrow-optics / arrow.optics.typeclasses / Snoc

Snoc

interface Snoc<S, A>

Properties

init Selects all elements except the last.open val S.init: Option<S>

Functions

initOption Provides an Optional between S and its init S.open fun initOption(): Optional<S, S>
lastOption Provides an Optional between S and its last element A.open fun lastOption(): Optional<S, A>
snoc Provides a Prism between a S and its init and last element A.abstract fun snoc(): Prism<S, Tuple2<S, A>>
Append an element A to S.open infix fun S.snoc(last: A): S
unsnoc Deconstruct an S between its init and last element.open fun S.unsnoc(): Option<Tuple2<S, A>>

Companion Object Functions

fromIso Lift an instance of Snoc using an Iso.fun <S, A, B> fromIso(SS: Snoc<A, B>, iso: Iso<S, A>): Snoc<S, B>
invoke Construct a Snoc instance from a Prism.operator fun <S, A> invoke(prism: Prism<S, Tuple2<S, A>>): Snoc<S, A>
list Snoc instance definition for List.fun <A> list(): Snoc<List<A>, A>
string Snoc instance for String.fun string(): Snoc<String, Char>

Inheritors

ListKSnoc Snoc instance definition for ListK.interface ~~ListKSnoc~~<A> : Snoc<ListK<A>, A>
ListSnoc Snoc instance definition for List.interface ~~ListSnoc~~<A> : Snoc<List<A>, A>
StringSnoc interface ~~StringSnoc~~ : Snoc<String, Char>

Do you like Arrow?

Arrow Org
<