Functionality to decorate R6 Distributions (and child classes) with extra methods.
decorate(distribution, decorators, ...)
([Distribution])
Distribution to decorate.
(character())
Vector of DistributionDecorator names to decorate the Distribution with.
ANY
Extra arguments passed down to specific decorators.
Returns a Distribution with additional methods from the chosen DistributionDecorator.
Decorating is the process of adding methods to classes that are not part of the core
interface (Gamma et al. 1994). Use listDecorators
to see which decorators are currently
available. The primary use-cases are to add numeric results when analytic ones are missing,
to add complex modelling functions and to impute missing d/p/q/r functions.
Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. 1994. “Design Patterns: Elements of Reusable Object-Oriented Software.” Addison-Wesley.
listDecorators()
for available decorators and DistributionDecorator for the parent
class.
B <- Binomial$new()
decorate(B, "CoreStatistics")
#> Binomial is now decorated with CoreStatistics
#> Binom(prob = 0.5, size = 10)
E <- Exponential$new()
decorate(E, c("CoreStatistics", "ExoticStatistics"))
#> Exponential is now decorated with CoreStatistics, ExoticStatistics
#> Exp(rate = 1)