Amb: Difference between revisions

49 bytes removed ,  1 year ago
m
Line 1,057:
===== 2. Program =====
 
<syntaxhighlight lang="lisp">;; 22.11.0811
;; 22.11.11 Clarification code
;; Mise en forme source
 
(defvar *heapstack* nil)
(defvar *assertion* t)
 
(defun new ()
(setf *heapstack* nil
*assertion* t))
 
(defun ambsel (symbol domain)
(pushnew symbol *heapstack*)
(set symbol (first domain))
(setf (get symbol 'domain) domain))
Line 1,077 ⟶ 1,075:
(if (eval *assertion*)
t
(labels ((probe (&optional (heapstack *heapstack*))
(let* ((symbol (first heapstack))
(domain (get symbol 'domain)))
(dolist (value domain)
(set symbol value)
(cond ((eval *assertion*) (return t))
((probe (rest heapstack)) (return t)))))))
(probe))))</syntaxhighlight>
 
422

edits