PFH: La semana en Exercitium (3 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 listas

El tipo de las listas, con elementos de tipo a, se puede definir por

Por ejemplo, la lista [4,2,5] se representa por Cons 4 (Cons 2 (Cons 5 Nil)).

Definir la función

tal que longitud xs es la longitud de la lista xs. Por ejemplo,

1.1. Soluciones en Haskell

1.2. Soluciones en Python

2. El tipo de los árboles binarios

El árbol binario

se puede representar por

El tipo de los árboles binarios se puede definir por

Definir las funciones

tales que

  • ocurre m a se verifica si m ocurre en el árbol a. Por ejemplo,

  • aplana a es la lista obtenida aplanando el árbol a. Por ejemplo,

2.1. Soluciones en Haskell

2.2. Soluciones en Python

3. El tipo de las fórmulas proposicionales: Variables de una fórmula

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

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

Definir la función

tal que variables p es la lista de las variables de la fórmula p. Por ejemplo,

3.1. Soluciones en Haskell

3.2. Soluciones en Python

4. El tipo de las fórmulas proposicionales: Valor de una fórmula

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

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

Una interpretación de una fórmula es una función de sus variables en los booleanos. Por ejemplo, la interpretación que a la variable A le asigna verdadero y a la B falso se puede representar por

El tipo de las intepretaciones de puede definir por

El valor de una fórmula en una interpretación se calcula usando las funciones de verdad de las conectivas que se muestran a continuación

Definir la función

tal que valor i p es el valor de la fórmula p en la interpretación i. Por ejemplo,

4.1. Soluciones en Haskell

4.2. Soluciones en Python

5. El tipo de las fórmulas proposicionales: Interpretaciones de una fórmula

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

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

Una interpretación de una fórmula es una función de sus variables en los booleanos. Por ejemplo, la interpretación que a la variable A le asigna verdadero y a la B falso se puede representar por

El tipo de las intepretaciones de puede definir por

Definir la función

tal que interpretaciones p es la lista de las interpretaciones de la fórmula p. Por ejemplo,

5.1. Soluciones en Haskell

5.2. Soluciones en Python