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

Usando el tipo de las fórmulas proposicionales definido en el ejercicio anterior, definir la función

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

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell


Soluciones en Python

El tipo de las fórmulas proposicionales

1. El tipo de las fórmulas proposicionales en Haskell

La fórmula A → ⊥ ∧ ¬B se representa por

usando el tipo de las fórmulas proposicionales definido por

1. El tipo de las fórmulas proposicionales en Haskell

La fórmula A → ⊥ ∧ ¬B se representa por

usando el tipo de las fórmulas proposicionales definido por

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,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell


Soluciones en Python

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,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell


Soluciones en Python

El tipo de los números naturales

El tipo de los números raturales se puede definir por

de forma que Suc (Suc (Suc Cero)) representa el número 3.

Definir las siguientes funciones

tales que

  • nat2int n es el número entero correspondiente al número natural n. Por ejemplo,

  • int2nat n es el número natural correspondiente al número entero n. Por ejemplo,

  • suma m n es la suma de los número naturales m y n. Por ejemplo,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell


Soluciones en Python