MateFun

Lenguaje de programación funcional puro dirigido a la enseñanza de funciones matemáticas y el modelado computacional en ciencias.

El lenguaje MateFun es un lenguaje de programación funcional pura dirigido a la enseñanza de funciones matemáticas, diseñado por investigadores del Instituto de Computación (InCo) de la Facultad de Ingeniería (FING) de la UDELAR. MateFun puede ser accedido a través de un entorno de programación integrado web (https://www.fing.edu.uy/proyectos/matefun/#/es/login) que permite gestionar programas, programar, ejecutar programas y visualizar gráficas, figuras y animaciones.

La sintaxis del lenguaje fue diseñada con el objetivo de ser minimal y lo más parecida posible a la notación utilizada en matemáticas. El propósito es que el lenguaje se pueda asimilar rápidamente y que su relación con los conceptos matemáticos subyacentes pueda ser reconocida por los estudiantes. Dado que la matemática es el lenguaje de las ciencias, MateFun resulta un lenguaje especialmente apropiado para la educación en ciencias.

Considerando que el público objetivo está compuesto principalmente por estudiantes de secundaria de habla hispana, se desarrolló una versión en español, pero es posible configurarlo para otros idiomas. Actualmente se cuenta con una versión en inglés. El lenguaje se desarrolla y mantiene en forma permanente.

Acceso a la documentación oficial de MateFun en: https://matefun-docs-643244.pages.fing.edu.uy/

Características principales

  • Paradigma funcional puro: sin efectos secundarios; enfocado en funciones, dominios y rangos.
  • Notación cercana a la matemática: facilita la comprensión y el vínculo con el razonamiento formal.
  • Sets y funciones tipadas: promueven la construcción rigurosa de conceptos matemáticos y computacionales.
  • Entorno web interactivo: permite programar, ejecutar y visualizar resultados sin instalación.
  • Enfoque didáctico: diseñado para fortalecer la alfabetización computacional en ciencias.

Ejemplo en MateFun

cuad :: Z -> Z
cuad(x) = x * x

inversa :: Rno0 -> R
inversa(x) = 1 / x
    

En el IDE, podés evaluar expresiones como cuad(7) o inversa(2) y visualizar sus resultados de forma inmediata.

Aplicaciones didácticas

Matemática

Exploración de funciones, composiciones, recursión y visualización de gráficos.

Ciencias experimentales

Modelado computacional de fenómenos y visualización con figuras 2D y 3D y con animaciones.

Formación docente

Puente entre pensamiento matemático y computacional en entornos educativos.