Cruce de listas

En esta entrada comento las soluciones en Haskell y Maxima de un problema planteado por Adam Majewski en la lista de Maxima en forma de ejercicio para I1M y PD. Además, añadiré soluciones en otros lenguajes conforme las vaya recibiendo.

1. Solución en Haskell

En este ejercico se usarán las siguientes librerías


Ejercicio 1. Definir la función

tal que (cruce xs ys) es la lista de las listas obtenidas con uniendo las listas de xs sin un elemento con las de ys sin un elemento. Por ejemplo,


Read More “Cruce de listas”

Cero elevado a cero y errores informáticos

Es muy frecuente los errores que se comenten al calcular el valor de “cero elevado a cero”. De esta forma, hay quienes piensan erróneamente que es un operación “prohibida”, que es una indeterminada o que su valor es 0.

En el artículo Cero elevado a la cero de Gustavo Piñeiro se explica detalladamente porqué cero elevado a cero es igual a uno.

Los errores sobre cero elevado a cero no sólo se dan entre los humanos, sino que también se dan en los sistemas informáticos. Maxima lo calcula erróneamente como se puede observar en la siguiente sesión
Read More “Cero elevado a cero y errores informáticos”

El problema de los números felices

1. El problema de los números felices

Según la Wikipedia, un número feliz se define por el siguiente proceso. Se comienza reemplazando el número por la suma del cuadrado de sus cifras y se repite el proceso hasta que se obtiene el número 1 o se entra en un ciclo que no contiene al 1. Aquellos números para los que el proceso termina en 1 se llaman números felices y los que entran en un ciclo sin 1 se llaman números desgraciados.

Por ejemplo, 7 es un número feliz porque

Pero 17 es un número desgraciado porque

que forma un bucle al repetirse el 89.

El objetivo del ejercicio es definir una función que calcule todos los números felices hasta un límite dado.
Read More “El problema de los números felices”

Lógica en Haskell

En la entrada curso de lógica informática publiqué los apuntes del curso.

Como se ha podido observar por los apuntes, en el curso se introduce la lógica de forma algorítmica presentando la especificación de distintos procedimientos lógicos.

En Lógica en Haskell se presenta los programas en Haskell de las especificaciones del curso.