;funzioni logiche
;----------------
;logica1
;
(prog1
(print(or(equal 2 3)(equal 4 4)(equal 'A 'B)))
;stampa T perche' almeno una condizione vera
(print(or(equal 2 3)(equal 4 5)(equal 'A 'B)))
;stampa NIL perche' nessuna condizione vera
(print(and(equal 2 2)(equal 'A 'A)))
;stampa T perche' entrambe condizioni vere
(print(and(equal 2 2)(equal 'A 'B)))
;stampa NIL perche' non tutte vere le condizioni
(print(not(equal 2 3)))
;stampa T perche' argomento falso:vero che 2 non uguale 3
(print(not(equal 2 2)))
;stampa NIL perche' argomento vero:falso che 2 non uguale 2
;-----------------------------------------------------------
(print(and(equal 2 2)(plusp 5)(minusp -3)(zerop 0)))
;stampa T perche' tutte condizioni vere
(print(and(equal 2 2)(or(equal 3 3))))
;stampa T
(print(and(minusp -5)(or(plusp 5)(zerop 3))))
;stampa T
(print(and(minusp -5)(or(plusp 5))(not(zerop 4))))
;stampa T
;------------------------------------------------------


)

;funzioni logiche
;----------------
;logica2

(prog1
(print'(+++++++++++++))
(print(plusp 5))    ;T
(print(plusp -5))   ;nil
(print(minusp -4))  ;T
(print(minusp 4))   ;nil
(print(zerop 0))    ;T
(print(zerop 5))    ;nil
(print(numberp 7))  ;T
(print(numberp 'A)) ;nil 
(print(oddp 5))     ;T
(print(oddp 6))     ;nil
(print(evenp 4))    ;T
;----------------------------------
(print"------------")
(print(< 1 2 3))    ;T
(print(< 3 2 1))    ;nil
(print(> 4 3 2))    ;T
(print(> 2 3 4))    ;nil
(print(= 6 6 6))    ;T
(print(= 6 7 8))    ;nil
(print(/= 7 8 9))   ;T
(print(/= 7 7 7))   ;nil
(print(/= 7 7 8))   ;nil
(print"------------")
(setq x 5)
(setq y 6)
(print(< x y))      ;T
;--------------------

)

;funzioni logiche
;----------------
;logica3

(prog1
(print"")
(setq test(or(plusp 5)(minusp 6)))
(print test);;;;T 
;-----------------------------------
(setq prova(and(plusp 5)(minusp 6)));;;nil
(print prova)
;-----------------------------------------
(if(equal test prova)(print"vero")(print"falso"));;;falso
(if(not(equal test prova))(print"vero")(print"falso"));;;vero
;------------------------------------------------------------
(setq s1 "padova")
(setq s2 "padova")
(if(equal s1 s2)(print"uguali")(print"diverse"));;;;uguali
(if(equal "padova" "verona")(print"uguali")(print"diverse"));;diverse
;---------------------------------------------------------------------

)
ritorna