File tree 3 files changed +23
-23
lines changed
3 files changed +23
-23
lines changed Original file line number Diff line number Diff line change 4
4
; ;;; package.lisp
5
5
6
6
(defpackage #:lisp-inference
7
- (:use # :cl)
7
+ (:use # :cl # :cl-user )
8
8
(:export
9
9
:double-negation
10
10
:de-morgan
Original file line number Diff line number Diff line change 38
38
(tests-run *equivalence-tests* ' <=>)
39
39
(format t " ~c == INFERENCE TESTS == ~c ~c " #\newline #\newline #\newline )
40
40
(tests-run *inference-tests* ' =>))
41
+
42
+ (defun main-test ()
43
+ (truth (=> (v p (~ q)) (=> p q)))
44
+ (truth (^ p q))
45
+ (truth (v p q))
46
+ (truth (=> p q))
47
+ (truth (<=> p q))
48
+ (print-truth-table ` (<=> (^ p q) , (de-morgan ' (^ p q)))))
Original file line number Diff line number Diff line change 153
153
(spaces (mapcar #' length printable-header)))
154
154
(print-bar spaces)
155
155
(princ " |" )
156
- (loop for exp in printable-header do (princ exp ))
157
- (princ #\newline )
156
+ (loop for exp in printable-header
157
+ do (princ exp )
158
+ finally (princ #\newline ))
158
159
(print-bar spaces)
159
160
(loop for n-value from 1 below n-values
160
161
do (progn
182
183
` (print-truth-table (infix-to-prefix (quote , exp ))))
183
184
184
185
(defun main ()
185
- (truth (=> (v p (~ q)) (=> p q)))
186
- (truth (^ p q))
187
- (truth (v p q))
188
- (truth (=> p q))
189
- (truth (<=> p q))
190
- (print-truth-table ` (<=> (^ p q) , (de-morgan ' (^ p q)))))
191
-
192
- #| set of manual tests (only for debug)
193
- (eval-operations '(~ p))
194
- (prepare-table (eval-operations '(^ p (v r s))))
195
- (cases-to-eval 3)
196
-
197
- (stack-of-expressions '(=> (^ p q) (v s (^ s q)))) ;; '((=> (^ p q) (v s r))
198
- ;; (^ p q)
199
- ;; (v r s))
200
-
201
- (group-cases-to-propositions '(^ (=> p q) r))
202
-
203
- (set-of-propositions '(^ (=> p q) r))
204
- |#
186
+ (format t " Example of usage: (^ p q)~% Operators: ~a ~% " *valid-operators* )
187
+ (handler-case (loop do (princ " TRUTH-TABLE> " )
188
+ do (force-output )
189
+ do (print-truth-table (read )))
190
+ (end-of-file () (sb-ext :exit))))
191
+
192
+ #+ sbcl
193
+ (defun dump-binary ()
194
+ (sb-ext :save-lisp-and-die " truth-table"
195
+ :toplevel #' main
196
+ :executable t ))
You can’t perform that action at this time.
0 commit comments