(defvar state) (setq state 1 ) ;state ;zero 1 ;f5 2 ;sev 3 ;s5 (defvar ans) (setq ans "NG~%") (loop for char = (read-char nil nil) do (if (eq char nil) (return)) (if (not (eq char #\Newline)) (progn (values) )) (case state (1 ;(print "zero") (if (eql char #\5) (setq state 2)) ) (2 ;(print "f5") (if (eql char #\7) (setq state 'sev) (setq state 3)) ) (3 ;(print "sev") (if (eql char #\5) (progn (setq ans "OK~%") (return)) (setq state 1)) ) ) ) (format 't ans)