Universal Turing machine: Difference between revisions

→‎Program: Improve style.
(→‎Program: Improve style.)
Line 2,390:
0</pre>
 
<syntaxhighlight lang="lisp">;;; 2223.1201.2316
 
(defun acl (table input state halt blank)
(loop for code = (cdr (assoc state table))
(let ((l nil)
(rwith input)l = nil
(argwith nil)r = input
(exewith op = nil))
with x = t
(loop :until (equal state halt)
:do (setf code (cdruntil (assoceql state table)halt)
do (dolist (c exe tcode)
(dolistcase (c code)
(= (casesetf x (eql (car r) cop)))
(=% (setfwhen exe (equalx (carrplaca r) argop)))
(< (when x (%push (whenpop exe (rplacal) r arg)))
(<> (when exex (push (pop lr) rl)))
(>@ (when exex (pushsetf (popstate rop) l(return)))
(@ (when exet (setf stateop arg) (returnc)))
(tunless (setf argcar c))r)
(setf r (unlesscons blank (carcdr r)))))
finally (format t "Q = (~a ~{~a~}.~{~a~})~%" state (setfreverse r (cons blank (cdrl) r))))))</syntaxhighlight>
(format t "Q = <~a, ~{~a~}.~{~a~}>~%" state (reverse l) r)))</syntaxhighlight>
 
====Tables====
422

edits