Skip to content

Commit c905a69

Browse files
committed
Add dump binary procedure
1 parent b9d1f4b commit c905a69

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

src/package.lisp

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
;;;; package.lisp
55

66
(defpackage #:lisp-inference
7-
(:use #:cl)
7+
(:use #:cl #:cl-user)
88
(:export
99
:double-negation
1010
:de-morgan

src/test.lisp

+8
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,11 @@
3838
(tests-run *equivalence-tests* '<=>)
3939
(format t "~c== INFERENCE TESTS == ~c ~c" #\newline #\newline #\newline)
4040
(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)))))

src/truth-table.lisp

+14-22
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,9 @@
153153
(spaces (mapcar #'length printable-header)))
154154
(print-bar spaces)
155155
(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))
158159
(print-bar spaces)
159160
(loop for n-value from 1 below n-values
160161
do (progn
@@ -182,23 +183,14 @@
182183
`(print-truth-table (infix-to-prefix (quote , exp))))
183184

184185
(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))

0 commit comments

Comments
 (0)