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, ...)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.
pproto object to inherit from. If NULL, don"t
inherit from any object.
A list of members to add to the new pproto object.
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