LMF2017: Lógica y programación

En la primera parte de la clase de hoy del curso Lógica matemática y fundamentos se han comentado algunas relaciones entre la lógica y la programación.

En primer lugar, a partir del artículo The Curry-Howard correspondence between programs and proofs se han comentado cómo los tipos se corresponden con las fórmulas y la existencia de funciones de un tipo dado se corresponde con la veracidad de su fórmula.

Como lectura complementario se ha recomendado el artículo El isomorfismo de Curry-Howard y una introducción a Coq.

Para analizar la distancia del lenguaje matemático a los de programación, se ha comentado el artículo From math to machine: translating a function to machine code que partiendo de la definición matemática del factorial expica su representación en un lenguaje funcional (Haskell), en uno imperativo (C), en ensamblador y en código máquina.

I1M2016: Estadística descriptiva en Haskell

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentado las soluciones a los ejercicios de la relación 19 sobre estadística descriptiva. Además, se ha comentado la librería Statistics.Sample que contiene las funciones definidas en la relación.

Los ejercicios y su solución se muestran a continuación
Read More “I1M2016: Estadística descriptiva en Haskell”

LMF2017: Sintaxis de la lógica proposicional y representación del conocimiento

En la primera parte de la clase de hoy del curso Lógica matemática y fundamentos se han comentados las soluciones propuestas de la 1ª relación de ejercicios sobre sintaxis de la lógica proposicional y representación del conocimiento.

En la segunda parte, se ha explicado cómo hacer demostraciones por deducción natural usando Pandora. Su uso se muestra en este vídeo.

Finalmente, se ha propuesto la 2ª relación de ejercicios.

I1M2016: Cálculo numérico en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios de la relación 18, en la que se definen funciones para resolver los siguientes problemas de cálculo numérico:

  • diferenciación numérica,
  • cálculo de la raíz cuadrada mediante el método de Herón,
  • cálculo de los ceros de una función por el método de Newton y
  • cálculo de funciones inversas.

Un aspecto a destacar desde el punto de vista de la programación es el uso de la abstracción de procedimientos.

Los ejercicios, y sus soluciones, se muestran a continuación.
Read More “I1M2016: Cálculo numérico en Haskell”