Menu Close

Interpretaciones de FNC (fórmulas en forma normal conjuntiva)

Nota: En este ejercicio usaremos las mismas notaciones que en el anterior importando los módulos Evaluacion_de_FNC y Atomos_de_FNC.

Definir las siguientes funciones

   interpretacionesClausula :: Clausula -> [Interpretacion]
   interpretaciones         :: FNC -> [Interpretacion]

tales que

  • (interpretacionesClausula c) es el conjunto de interpretaciones de la cláusula c. Por ejemplo,
     interpretacionesClausula [1,2,-1]  ==  [[],[1],[2],[1,2]]
     interpretacionesClausula []        ==  [[]]
  • (interpretaciones f) es el conjunto de interpretaciones de la fórmula f. Por ejemplo,
     interpretaciones [[1,-2],[-1,2]] == [[],[1],[2],[1,2]] 
     interpretaciones []              == [[]]

Nota: Escribir la solución en el módulo Interpretaciones_de_FNC para poderlo usar en los siguientes ejercicios.

Soluciones

module Interpretaciones_de_FNC where
 
import Evaluacion_de_FNC
import Atomos_de_FNC
import Data.List (subsequences)
 
interpretacionesClausula :: Clausula -> [Interpretacion]
interpretacionesClausula = subsequences . atomosClausula 
 
interpretaciones :: FNC -> [Interpretacion]
interpretaciones = subsequences . atomosFNC

Otras soluciones

  • Se pueden escribir otras soluciones en los comentarios.
  • El código se debe escribir entre una línea con <pre lang=”haskell”> y otra con </pre>

Pensamiento

“En matemáticas, el arte de hacer preguntas es más valioso que la resolución de problemas.”

Georg Cantor.

2 soluciones de “Interpretaciones de FNC (fórmulas en forma normal conjuntiva)

  1. rebgongor
    module Interpretaciones_de_FNC where
     
    import Evaluacion_de_FNC
    import Atomos_de_FNC
    import Data.List
     
    interpretacionesClausula :: Clausula -> [Interpretacion]
    interpretacionesClausula = subsequences . atomosClausula
     
    interpretaciones :: FNC -> [Interpretacion]
    interpretaciones = subsequences . atomosFNC
  2. claniecas
    module Interpretaciones_de_FNC where
     
    import Atomos_de_FNC
    import Evaluacion_de_FNC
    import Data.List (nub, subsequences)
     
    interpretacionesClausula :: Clausula -> [Interpretacion]
    interpretacionesClausula = subsequences . atomosClausula
     
    interpretaciones :: FNC -> [Interpretacion]
    interpretaciones = nub . concat . map interpretacionesClausula

Leave a Reply

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.