Sha256: 26acbfd2aee22ffa627856bdc3a9609c08402a785ed3bf42cfdeb3dc275b4f4f
Contents?: true
Size: 1.31 KB
Versions: 82
Compression:
Stored size: 1.31 KB
Contents
exercise: SpaceAge version: 1 plan: 10 imports: Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune tests: | is (age-on ::(.<planet>): .<seconds>), |.<expected description> for @($c-data<cases>); unit: module example: | role Planet { method age-on ($seconds) { ($seconds / self.orbital-period).round(0.01); } } class Earth does Planet is export { my $.orbital-period = 31557600; } my %planets = ( :Mercury(0.2408467), :Venus(0.61519726), :Mars(1.8808158), :Jupiter(11.862615), :Saturn(29.447498), :Uranus(84.016846), :Neptune(164.79132), ); for %planets.kv -> $planet, $relative { use MONKEY-SEE-NO-EVAL; OUR::EXPORT::ALL::{$planet} := OUR::EXPORT::DEFAULT::{$planet} := EVAL "class $planet does Planet is export " ~ '{ my $.orbital-period = calculate-orbital-period $relative }'; } sub calculate-orbital-period ($relative-to-earth) { Earth.orbital-period * $relative-to-earth; } stub: | role Planet { method age-on ($seconds) { } } class Earth does Planet is export { my $.orbital-period = 31557600; } =for comment --- Orbital periods relative to Earth: Mercury: 0.2408467 Venus: 0.61519726 Mars: 1.8808158 Jupiter: 11.862615 Saturn: 29.447498 Uranus: 84.016846 Neptune: 164.79132 ...
Version data entries
82 entries across 82 versions & 1 rubygems