Курсовая работа: Лисп-реализация конечных автоматов

; Аргументы: 'cur' – текущее состояние

; 'char' – текущий символ

; Возвращаемое значение: новое состояние

(defun function2 (cur char )

(cond

((and (eq char `a) (eq cur `qb)) `q1)

((and (eq char `b) (eq cur `qb)) `q2)

((and (eq char `c) (eq cur `qb)) `q3)

((and (eq char `a) (eq cur `q1)) `q1)

((and (eq char `b) (eq cur `q2)) `q2)

((and (eq char `c) (eq cur `q3)) `q3)

(T nil )

)

)

; Функция проверки, является ли ' char ' элементом ' set ' (необходима для остановки)

; Алгоритм проверки:

; 1. ' set ' пусто => нет

; 2. ' char ' совпадает с головой ' set ' => да

; 3. ' char ' является злементом хвоста ' set ' => да

; 4. 'set' – не список => нет

(defun isOneOf (set char )

(cond

((eq set nil ) nil )

((eq char (car set )) T )

((isOneOf (cdr set ) char ) T )

(T nil )

)

)

; Непосредственно конечный автомат

К-во Просмотров: 323
Бесплатно скачать Курсовая работа: Лисп-реализация конечных автоматов