Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. #lang racket
  2.  
  3. (define (var? t)
  4. (symbol? t))
  5.  
  6. (define (neg? t)
  7. (and (list? t)
  8. (= 2 (length t))
  9. (eq? 'neg (car t))))
  10.  
  11. (define (conj? t)
  12. (and (list? t)
  13. (= 3 (length t))
  14. (eq? 'conj (car t))))
  15.  
  16. (define (disj? t)
  17. (and (list? t)
  18. (= 3 (length t))
  19. (eq? 'disj (car t))))
  20.  
  21. (define (prop? f)
  22. (or (var? f)
  23. (and (neg? f)
  24. (prop? (neg-subf f)))
  25. (and (disj? f)
  26. (prop? (disj-left f))
  27. (prop? (disj-right f)))
  28. (and (conj? f)
  29. (prop? (conj-left f))
  30. (prop? (conj-right f)))))
  31.  
  32. ;; konstruktory
  33.  
  34. (define (make-neg t) (list 'neg t))
  35.  
  36. (define (make-conj p q) (list 'conj p q))
  37.  
  38. (define (make-disj p q) (list 'disj p q))
  39.  
  40. ;; selektory
  41.  
  42. (define (neg-subf f) (cadr f))
  43.  
  44. (define (conj-left f) (cadr f))
  45. (define (conj-right f) (caddr f))
  46.  
  47. (define (disj-left f) (cadr f))
  48. (define (disj-right f) (caddr f))
  49.  
  50.  
  51. ;; zmienne wolne
  52.  
  53. (define (append xs ys)
  54. (if (null? xs)
  55. ys
  56. (cons (car xs) (append (cdr xs) ys))))
  57.  
  58.  
  59. (define (free-vars f)
  60. (define (help f xs)
  61. (cond [(neg? f) (help (neg-subf f) xs)]
  62. [(conj? f) (help (conj-right f) (help (conj-left f) xs))]
  63. [(disj? f) (help (disj-right f) (help (disj-left f) xs))]
  64. [else (append xs (list f))]))
  65. (if (prop? f)
  66. (remove-duplicates (help f null))
  67. (display "error - ZLE DANE")))
  68.  
  69.  
  70. (define formula (make-conj 'p 'q))
  71.  
  72. (define formula2 (make-neg (make-disj 'yellow (make-conj 'red 'quartz))))
  73.  
  74.  
  75. ;; ćwiczenie 3
  76.  
  77. (define (gen-vals xs)
  78. (if (null? xs)
  79. (list null)
  80. (let*
  81. ((vss (gen-vals (cdr xs)))
  82. (x (car xs))
  83. (vst (map (lambda (vs) (cons (list x true) vs)) vss))
  84. (vsf (map (lambda (vs) (cons (list x false) vs)) vss)))
  85. (append vst vsf))))
  86.  
  87. (define (eval-formula f xs)
  88. (cond [(conj? f)]))
  89.  
  90.  
  91. ;; ćwiczenie 4
  92.  
  93. (define (nnf? f)
  94. (cond [(var? f) f]
  95. [(neg? f)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement