Recursión y type classes para evaluador de árboles en SML
Visión general
De qué trata este proyecto.
Implementa un evaluador de árboles en SML con recursión estructural y entorno inmutable, manejando errores con tipos suma. Obtén un certificado verificable.
El escenario
El grupo docente (curso obligatorio de 200 estudiantes/año) busca material pedagógico moderno y bien comentado para reemplazar ejemplos heredados poco idiomáticos.
El Briefing
Lo que harás y lo que demostrarás.
Implementar un evaluador SML idiomático con recursión estructural y manejo de errores que sirva como material pedagógico de calidad.
Earning criteria — what you'll demonstrate
- Modelar un AST con datatype recursivo en SML
- Aplicar recursión estructural sobre tipos algebraicos
- Manejar errores con tipos suma sin excepciones
- Producir código pedagógico legible e idiomático
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Functional Programming
Bachelor · Programming Languages
Strong alignment
This challenge maps to Functional Programming at the Bachelor level. It sharpens the same practical skills your coursework expects — but in a real industry context with actual constraints and deliverables.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
- Sml
Apply sml to solve real industry problems and demonstrate production-level capability.
- Recursion
Apply recursion to solve real industry problems and demonstrate production-level capability.
- Algebraic Data Types
Apply algebraic data types to solve real industry problems and demonstrate production-level capability.
- Pure Functions
Apply pure functions to solve real industry problems and demonstrate production-level capability.
- Pattern Matching
Apply pattern matching to solve real industry problems and demonstrate production-level capability.
- Pedagogical Design
Apply pedagogical design to solve real industry problems and demonstrate production-level capability.
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.
Ingeniero de Software
Construir evaluadores con recursión estructural y manejo de errores como datos es la base que transfiere a cualquier lenguaje funcional (Haskell, OCaml, F#, Rust con sum types).
Este proyecto afina
- sml
- recursion
- algebraic-data-types
Ingeniero de Backend
Pensar errores como datos cambia cómo se escribe backend en Go o Rust — competencia transferible inmediatamente útil.
Este proyecto afina
- pure-functions
- pattern-matching
- algebraic-data-types