Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Main where
- import Lib
- data Zdanie = Z Char | N Zdanie | K Zdanie Zdanie | A Zdanie Zdanie | C Zdanie Zdanie
- main :: IO()
- main = do
- let zdanie_test = C (N (Z 'p')) (A (K (Z 'p') (Z 'q')) (Z 'r'))
- let test1 = Z 'p'
- print (wypiszZmienne zdanie_test [])
- -- Podpunkt 1
- drukujZdanie :: Zdanie -> String
- drukujZdanie (Z x) = [x]
- drukujZdanie (N z) = "~" ++ drukujZdanie z
- drukujZdanie (K z1 z2) = "(" ++ drukujZdanie z1 ++ " & " ++ drukujZdanie z2 ++ ")"
- drukujZdanie (A z1 z2) = "(" ++ drukujZdanie z1 ++ " | " ++ drukujZdanie z2 ++ ")"
- drukujZdanie (C z1 z2) = "(" ++ drukujZdanie z1 ++ " => " ++ drukujZdanie z2 ++ ")"
- -- Podpunkt 2
- wypiszZmienne :: Zdanie -> [Char] -> String
- wypiszZmienne (Z x) wynik = dodajTablice wynik [x]
- wypiszZmienne (N z) wynik = dodajTablice wynik (wypiszZmienne z wynik)
- wypiszZmienne (K z1 z2) wynik = dodajTablice (dodajTablice wynik (wypiszZmienne z1 wynik)) (wypiszZmienne z2 wynik)
- wypiszZmienne (A z1 z2) wynik = dodajTablice (dodajTablice wynik (wypiszZmienne z1 wynik)) (wypiszZmienne z2 wynik)
- wypiszZmienne (C z1 z2) wynik = dodajTablice (dodajTablice wynik (wypiszZmienne z1 wynik)) (wypiszZmienne z2 wynik)
- dodajTablice :: [Char] -> [Char] -> [Char]
- dodajTablice origin [] = origin
- dodajTablice origin temp = if (length (filter (\x -> x == temp!!0) origin) > 0)
- then dodajTablice origin (filter (/=temp!!0) temp)
- else dodajTablice (origin++[temp!!0]) (filter (/=temp!!0) temp)
- -- Podpunkt 3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement