Motor de reglas en Haskell para pricing dinámico de hotel
Visión general
De qué trata este proyecto.
Diseña el lenguaje de reglas como tipo algebraico (Regla = Si Condicion Entonces Accion | Y Regla Regla | O Regla Regla). Implementa el intérprete puro en Haskell. Define condiciones (ocupación, día semana, antelación) y acciones (descuento porcentual, recargo, freeze). Expón un endpoint HTTP con Servant. Construye 4 reglas de muestra extraídas del equipo comercial. Mide latencia. Entrega código Haskell, archivo de reglas YAML compilable, suite de tests con QuickCheck y dossier para el equipo comercial.
El Briefing
Lo que harás y lo que demostrarás.
Implementar un motor de reglas componibles en Haskell que evalúe pricing dinámico en menos de 50 ms y permita al equipo comercial editar reglas sin desplegar código.
Earning criteria — what you'll demonstrate
- Aplicar tipos algebraicos para modelar un lenguaje de reglas
- Diseñar una embedded DSL con sintaxis legible para no programadores
- Aplicar QuickCheck para validar propiedades del intérprete
- Comunicar el diseño a un equipo comercial no técnico
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosIngeniero de Software
Diseñar un intérprete puro en Haskell prueba dominio sólido de tipos algebraicos — habilidad valorada por equipos que escriben código defendible incluso en otros lenguajes.
Este proyecto afina
- haskell
- algebraic-data-types
- pure-functions
Ingeniero de Backend
Construir endpoints type-safe con Servant prepara a quien hace backend a pensar contratos como tipos, no como documentación.
Este proyecto afina
- haskell
- embedded-dsl
- type-driven-design