среда, 17 июля 2013 г.

unwind-protect

Вот, кстати, кто там жаловался на скобочки.
Сначала я думал, что unwind-protect это такая фирменная лисповая штука, но чуток подумал и понял, что это всего навсего аналог finally в блоке try/except
По-моему такой способ написания более няшен чем привычный питонячий или жабовый.

(let (resource stream)
  (unwind-protect
    (progn
      (setq resource (allocate-resource)
            stream (open-file))
      (process stream resource))
    (when stream (close stream))
    ;; если была ошибка, то выполняется эта строчка.
    (when resource (deallocate resource))))

Комментариев нет:

Отправить комментарий