+0.12
Рейтинг
0.30
Сила

Григорий

turbobit net orqrt1qqqeqj html

turbobit net orqrt1qqqeqj html — если вы ввели это запрос, то вы наверняка хотите скачать TESTTEXT.zip.
Для его загрузки перейдите на сайт — _http://turbobit.net/420vix02gji5.html
  • avatar
  • 0
  • 0

Gazgaz bos ru lecik html

Хотел бы рассказать про отличный магазин мотоциклов.
Имеют огромный ассортимент, в поисках я заметил фразу gazgaz bos ru lecik html в поисках этого товара достаточно пользователей не находят то что ищят, поэтому я решил помочь.
_http://gasgas.ru/product/ec-300-guillaume-replica.html

Вот ссылка на сайт, удачи вам:)
  • avatar
  • 0
  • 0

Новогодний code snippet: деструкторы C++ в CL

(defgeneric dispose (object)
  (:documentation "Disposes an object.")
  (:method ((object T)) (values)))

(defun %ensure-bindings (bindings)
  (loop :for b :in bindings
    :collect (etypecase b
               (symbol (list b nil))
               (cons b))))

(defmacro letd ((&rest bindings) &body body)
  (let ((bindings (%ensure-bindings bindings)))
    `(let ,bindings
       (unwind-protect
           (locally ,@body)
         (progn ,@(loop :for b :in bindings
                        :collect `(dispose ,(car b))))))))

(defmacro letd* ((&rest bindings) &body body)
  (let ((bindings (%ensure-bindings bindings)))
    `(let* ,bindings
       (unwind-protect
           (locally ,@body)
         (progn ,@(loop :for b :in bindings
                        :collect `(dispose ,(car b))))))))


Ну и пример использования, вот такой:

;; что хорошо в CLOS, так это то, что, поскольку методы классам
;; не принадлежат, мы можем «добавлять» методы к уже существующим классам
(defmethod dispose ((object stream))
  (close object))


(letd ((in (open "HelloWorld.txt")))
  (read-line in)) ;;
после выхода из тела макроса поток закрывается

Для настройки форматирования в емаксе надо в define-common-lisp-style(в недавней статье про настройку SBCL+Emacs под Windows я это упоминал) добавить следующее:

(letd (as let))
    (letd* (as let*))


Всех с наступившим!