За несколько часов до окончания
сабжа я, внезапно, тоже решил принять участие.
Задание в этот раз относительно простое, поэтому наивную реализацию делать было не интересно. Подумал, может собрать классическую макру, которая по шаблонам дерево сравнений строит, но там какой-то дружище-ракетчик уже меня
опередил :) Посмотрел остальные решения: в
(
Read more... )
http://pastebin.com/kuD6VgHg
Теперь при переходе в другое состояние возвращается дополнительно координаты, на которых следует скармливать этому новому состоянию символ. Параллельно все проверки на совпадения координат исчезли из сгенерированного когда, в этой версии он выглядит как-то так:
(DEFUN MAIL-DIGITS (INIT-ROW INIT-COL)
(LABELS ((STATE-0 (CHAR NEXT RESET)
(DECLARE (IGNORABLE NEXT))
(COND
((CHAR= CHAR #\1)
(FUNCALL NEXT #'STATE-1 (+ INIT-ROW 0) (+ INIT-COL 1)))
(T (FUNCALL RESET))))
(STATE-1 (CHAR NEXT RESET)
(DECLARE (IGNORABLE NEXT))
(COND ((CHAR= CHAR #\1 ( ... )
Reply
Leave a comment