lens {tinylens}R Documentation

Create a lens

Description

A lens is a pair of functions that can be used to view and set a value in an object. Lenses are implemented as S7 classes.

Usage

lens(view, set = NULL)

Arguments

view

A function that takes an object and returns a value

set

A function that takes an object and a value and returns a new object

Details

A "proper" lens should satisfy the following so-called "lens laws":

These laws are not enforced by tinylens, but you should strive to follow them when creating your own lenses.

A best effort has been made to ensure that these laws hold for the lenses provided by tinylens, but this is trickier than it might seem because of how R handles subset assignments.

Value

A lens with the specified view and set functions

Examples

# create a trivial identity lens
l <- lens(view = function(x) x, set = function(x, value) value)

[Package tinylens version 0.1.0 Index]