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