public static IPendulumState CreateState <R, K>(this Pendulum <R, K> pendulum) => new PendulumState <R, K>(pendulum);
public PendulumModification(Pendulum <T, K> pendulum) => this.pendulum = pendulum;
public static IPendulumModifications <R> CreateModifications <R, K>(this Pendulum <R, K> pendulum) => new PendulumModification <R, K>(pendulum);
public static IPendulumConstrains <R> CreateConstrains <R, K>(this Pendulum <R, K> pendulum) => new PendulumConstrains <R, K>(pendulum);
public static IPendulumRanking <R> CreateRanking <R, K>(this Pendulum <R, K> pendulum) => new PendulumRanking <R, K>(pendulum);
/// <summary> /// The "projection method". Perform modifications on a specialized object and unit a common interface. /// </summary> public static IPendulum <R> Define <R, T>(this Pendulum <R, T> p, Func <Pendulum <R, T>, IPendulum <R> > ex) => ex(p);
public PendulumConstrains(Pendulum <T, K> pendulum) { this.pendulum = pendulum; }