PFH: La semana en Exercitium (10 de diciembre de 2022)

Esta semana he publicado en Exercitium las soluciones de los siguientes problemas:

A continuación se muestran las soluciones.

1. El tipo de las fórmulas proposicionales: Reconocedor de tautologías

El tipo de las fórmulas proposicionales se puede definir por

de modo que la fórmula A → ⊥ ∧ ¬B se representa por

Una fórmula es una tautología si es verdadera en todas sus interpretaciones. Por ejemplo,

  • (A ∧ B) → A es una tautología
  • A → (A ∧ B) no es una tautología

Definir la función

tal que esTautologia p se verifica si la fórmula p es una tautología. Por ejemplo,

1.1. Soluciones en Haskell

1.2. Soluciones en Python

2. Altura de un árbol binario

El árbol binario

se puede representar por

El tipo de los árboles binarios se puede definir por

data Arbol a = Hoja a
| Nodo (Arbol a) (Arbol a)

Definir la función

tal que altura t es la altura del árbol t. Por ejemplo,

2.1. Soluciones en Haskell

2.2. Soluciones en Python

3. Aplicación de una función a un árbol

El árbol binario

se puede representar por

El tipo de los árboles binarios se puede definir por

Definir la función

tal que mapArbol f t es el árbolo obtenido aplicando la función f a los elementos del árbol t. Por ejemplo,

3.1. Soluciones en Haskell

3.2. Soluciones en Python

4. Árboles con la misma forma

El árbol binario

se puede representar por

El tipo de los árboles binarios se puede definir por

Definir la función

tal que mismaForma t1 t2 se verifica si t1 y t2 tienen la misma estructura. Por ejemplo,

4.1. Soluciones en Haskell

4.2. Soluciones en Python

5. Árbol con las hojas en la profundidad dada

El árbol binario

se puede representar por

El tipo de los árboles binarios se puede definir por

Definir la función

tal que creaArbol n es el árbol cuyas hoyas están en la profundidad n. Por ejemplo,

5.1. Soluciones en Haskell

5.2. Soluciones en Python