Tracks
/
Haskell
Haskell
/
Ejercicios
/
Era espacial
Era espacial

Era espacial

Fácil

Introducción

Estamos en el año 2525 y acabas de emprender un viaje para visitar todos los planetas del sistema solar (Mercurio, Venus, la Tierra, Marte, Júpiter, Saturno, Urano y Neptuno). La primera parada es Mercurio, donde la aduana te exige llenar un formulario (al parecer, la burocracia no es exclusiva de la Tierra). Cuando entregas el formulario al agente de aduanas, este lo examina con atención y frunce el ceño. «¿De verdad esperas que te crea que solo tienes 50 años? ¡Debes tener cerca de 200 años!».

Te hace gracia y esperas que el agente de aduanas se ría, pero parece estar completamente en serio. Te das cuenta de que escribiste tu edad en años terrestres, pero el agente esperaba que la dieras en años mercurianos. Como el periodo orbital de Mercurio alrededor del sol es mucho más corto que el de la Tierra, en realidad eres bastante mayor en años mercurianos. Después de unos cálculos rápidos, puedes dar tu edad en años mercurianos. El agente de aduanas sonríe, satisfecho, y te indica que pases. Te propones calcular de antemano tu edad en cada planeta antes de futuros controles de aduana, para evitar este tipo de confusiones.

Note

Si te preguntas por qué Plutón no entró en la lista, mira este video de YouTube.

Instrucciones

Dada una edad en segundos, calcula qué edad tendría alguien en un planeta de nuestro sistema solar.

Un año terrestre equivale a 365.25 días terrestres, o 31,557,600 segundos. Si te dijeran que alguien tiene 1,000,000,000 segundos de edad, su edad sería de 31.69 años terrestres.

Para los demás planetas, tienes que tener en cuenta su período orbital en años terrestres:

Planeta Período orbital en años terrestres
Mercurio 0.2408467
Venus 0.61519726
Tierra 1.0
Marte 1.8808158
Júpiter 11.862615
Saturno 29.447498
Urano 84.016846
Neptuno 164.79132
Note

La duración real de una órbita completa de la Tierra alrededor del Sol se acerca más a 365.256 días (1 año sidéreo). El calendario gregoriano tiene, en promedio, 365.2425 días. Aunque no es del todo exacto, 365.25 es el valor que se usa en este ejercicio. Consulta Año en Wikipedia para ver más formas de medir un año.

Pistas

En este ejercicio, proporcionamos la definición del tipo de datos algebraico llamado Planet. Necesitas implementar la función ageOn, que calcula cuántos años tendría alguien en un Planet, dada una edad en segundos.

Puedes usar la firma proporcionada si tienes dudas sobre los tipos, pero no dejes que restrinja tu creatividad:

ageOn :: Planet -> Float -> Float
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Haskell Exercism

¿Todo listo para empezar Era espacial?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.