Курсовая работа: Лисп-реализация конечных автоматов
; ' end ' – список конечных состояний
; ' move ' – функция смены состояний
; ' text ' – входное слово
; Возвращаемое значение: ' Correct ' – входное слово допустимо
; ' Incorrect ' – входное слово недопустимо
; Алгоритм:
; 1. Лента пуста и
; а. текущее состояние финальное => слово допустимо
; б. текущее состояние не финальное => слово недопустимо
; 2. Текущий символ допустим и лента не пуста => движемся дальше
(defun KA (begin end move text)
(cond
((eq text nil )
(cond
((isOneOf end begin) `Correct)
(T `Incorrect)
)
)
(T (KA (funcall move begin (car text)) end move (cdr text)))
)
)
(setq input_stream (open «d:\\text.txt» :direction:input))
; входное слово
(setq text (read input_stream))
; функция смены состояний
(setq funct (read input_stream))
; начальное состояние
(setq start (read input_stream))
; список конечных состояний