; Конечный автомат, описывающий дверь
(let ((state 'zaperto))
(defun fsm (input)
(case state
((zaperto)
(cond ((eql input 'otopri)
(setf state 'zakrito))))
((zakrito)
(case input
((otkroi) (setf state 'otkrito))
((zapri) (setf state 'zaperto))))
((otkrito)
(case input
((zakroi) (setf state 'zakrito))
((zapri) (setf state 'zaperto)))))))
; Конечный автомат, описывающий дверь
(let ((state 'zaperto))
(defun fsm (input)
(case state
((zaperto)
(cond ((eql input 'otopri)
(setf state 'zakrito))))
((zakrito)
(case input
((otkroi) (setf state 'otkrito))
((zapri) (setf state 'zaperto))))
((otkrito)
(case input
((zakroi) (setf state 'zakrito))
((zapri) (setf state 'zaperto)))))))
Кому копейки, а кому хлебушек!