Комментарии S-выражения в Common Lisp

Я написал реализацию Common Lisp комментариев s-выражения Scheme (SRFI 62):

(eval-when (:compile-toplevel
            :load-toplevel
            :execute)

  (defun handle-s-expression-comment (stream char n)
    (declare (ignore char))
    (when n
      (error "Infix parameter not allowed in s-expression comment."))
    (read stream)  ; Discard the next s-expression.
    (values))

  (set-dispatch-macro-character ## #; #'handle-s-expression-comment))

С комментариями s-выражения:

  • (+ 1 #;(* 2 3) 4) возвращается 5
  • (list 'x #;'y 'z) возвращается (x z)
  • (* 3 4 #;(+ 5 6)) возвращается 12
  • (#;sqrt abs -123) возвращается 123

Моя реализация верна? Какие улучшения я могу сделать?

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *