fork(1) download
  1. (define-symbol-macro нет nil)
  2. (define-symbol-macro да t)
  3.  
  4. (defun антонирована-ли? (строка)
  5. (let ((позиция 0)
  6. (край (length строка))
  7. (ширус (coerce "anton" 'list)))
  8. (tagbody
  9. поиск
  10. (if (char= (car ширус)
  11. (schar строка позиция))
  12. (go попался-сука)
  13. (go смотрим-дальше))
  14. смотрим-дальше
  15. (if (= (incf позиция) край)
  16. (return-from антонирована-ли? Нет)
  17. (go поиск))
  18. попался-сука
  19. (if (setf ширус (cdr ширус))
  20. (go смотрим-дальше)
  21. (return-from антонирована-ли? Да)))))
  22.  
  23. (format t "~:[Ширусов не найдено~;Achtung! Обнаружен anton в строк~:*~{~#[~;е номер ~a~:;ах с номерами: ~@{~a~^, ~}~]~}~]"
  24. (loop :for номер :upfrom 1
  25. :for строка := (read-line t nil) :while строка
  26. :if (антонирована-ли? строка)
  27. :collect номер))
Success #stdin #stdout 0.01s 25412KB
stdin
222anton456
a1n1t1o1n1
0000a0000n00t00000o0000000n
gylfole
richard
ant0n
stdout
Achtung! Обнаружен anton в строках с номерами: 1, 2, 3