Construct a new object with pproto. This object system is inspired from the ggproto system used in the ggplot2 package.

pproto(`_class` = NULL, `_inherit` = NULL, ...)

Arguments

_class

Class name to assign to the object. This is stored as the class attribute of the object. This is optional: if NULL (the default), no class name will be added to the object.

_inherit

pproto object to inherit from. If NULL, don"t inherit from any object.

...

A list of members to add to the new pproto object.

Examples

Adder <- pproto("Adder", x = 0, add = function(self, n) { self$x <- self$x + n self$x } ) Adder$add(10)
#> [1] 10
Adder$add(10)
#> [1] 20
Abacus <- pproto("Abacus", Adder, subtract = function(self, n) { self$x <- self$x - n self$x } ) Abacus$add(10)
#> [1] 30
Abacus$subtract(10)
#> [1] 20