traversy.lens

*>

(*> & lenses)
Combine lenses to form a new lens.

+>

(+> & lenses)
Combine lenses in parallel to form a new lens.

all-entries

A lens from map -> each entry.

all-keys

A lens from map -> each key.

all-values

A lens from map -> each value.

both

(both one another)
Combine two lenses in parallel to form a new lens.

combine

(combine outer inner)
Combine two lenses to form a new lens.

conditionally

(conditionally applies?)
A lens to a conditional value, based on a predicate.

This lens is unstable if the predicate interacts with an update.

each

A lens from collection -> item.

in

(in path)
A lens from map -> value at path.

indexed

A lens from sequence -> index/item pair.

it

The identity lens (under 'combine').

lens

(lens focus fmap)
Construct a lens from a focus function and an fmap function:
(focus x) => a sequence of foci
(fmap f x) => an updated x

maybe

A lens to an optional value.

This lens is unstable if an update converts nil to another value. 

nothing

The null lens. The identity under 'both'.

only

(only applies?)
A lens from collection -> applicable items, based on a predicate.

This lens is unstable if the predicate interacts with an update.

put

(put x)
When supplied as the f to update, sets all the foci to x.

select-entries

(select-entries ks)
A lens from map -> the entries corresponding to ks.

update

(update x lens f)
Apply f to the foci of x, as specified by lens.

view

(view x lens)
Return a seq of the lens' foci.

view-single

(view-single x lens)
Return the sole focus, throwing an error if there are other or no foci.

xth

(xth n)
A lens from collection -> nth item.