(defvar state) (setq state 'zero ) ;state ;zero ;f5 ;sev ;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 ('zero ;(print "zero") (if (eql char #\5) (setq state 'f5)) ) ('f5 ;(print "f5") (if (eql char #\7) (setq state 'sev) (setq state 'zero)) ) ('sev ;(print "sev") (if (eql char #\5) (progn (setq ans "OK~%") (return)) (setq state 'zero)) ) ) ) (format 't ans)