Skip to content

Instantly share code, notes, and snippets.

(defclass my-metaclass (standard-class)
((slot-metaclass :initform nil
:initarg :slot-metaclass
:accessor slot-metaclass))
(:documentation "metaclass"))
(defmethod validate-superclass ((class my-metaclass) (super-class standard-class))
t)
(defmethod make-instance ((class direct-my-arg-slot) &rest initargs &key my-arg)
(loop for i from 1 to 100 do
(print (cond ((zerop (mod i (* 3 5))) "FizzBuzz")
((zerop (mod i 3)) "Fizz")
((zerop (mod i 5)) "Buzz")
(t i))))
* Цель
...этого документа - максимизировать вероятность успеха при найме
программистов, подходящих для наших задач. Это не про то, как
нанимать гениев, скорее про то, как не нанимать тех, кто нам не
подходит. В ряде случаев в эту категорию могут попадать и гении - и
это, возможно, является нашей проблемой, но рассмотрение ее выходит
за рамки этого документа
* Основные принципы
end of file on #<AMQP-1-1-0-9-1:CHANNEL [#<PURI:URI amqp://localhost/>].1 {10073EFAF3}>
[Condition of type END-OF-FILE]
Restarts:
0: [RETRY] Retry SLIME REPL evaluation request.
1: [*ABORT] Return to SLIME's top level.
2: [ABORT] Abort thread (#<THREAD "new-repl-thread" RUNNING {1005E77013}>)
Backtrace:
0: ((:METHOD DE.SETF.AMQP.IMPLEMENTATION::DEFAULT-CHANNEL-RESPOND-TO (AMQP:CHANNEL (EQL (QUOTE AMQP::CHANNEL-RESPOND-TO-CLOSE)))) #<AMQP-1-1-0-9-1:CHANNEL [#<PURI:URI amqp://localhost/>].1 {10073EFAF3}>..
Сжимая в одной руке надкушенный бутерброд, а в другой - бутылку кефира, черт озирался по сторонам. Выглядел он вполне заурядно - мятый старомодный костюм, шелковая рубашка, тупоносые туфли, галстук лопатой. Все черное, только на галстуке алые языки пламени. Если бы не рожки, проглядывающие сквозь аккуратную прическу и свешивающийся сзади хвост, черт походил бы на человека.
Толик отрешенно подумал, что в зале истории средних веков городского музея черт в костюме и при галстуке выглядит даже излишне модерново. Ему больше пошел бы сюртук или фрак.
- Что за напасть... - выплевывая недопрожеванный бутерброд, изрек черт. Аккуратно поставил бутылку с кефиром на пол, покосился на Анатолия и попробовал длинным желтым ногтем меловую линию пентаграммы. В ноготь ударила искра. Черт пискнул и засунул палец в рот.
- Я думал, хвост будет длиннее, - сказал Толик.
Черт вздохнул, достал из кармана безупречно чистый носовой платок, постелил на пол. Положил на платок бутерброд. Легко подпрыгнул и коснулся свободной рукой потолка
(defmacro -> (forms)
(let ((forms (reverse forms)))
(if (null (cdr forms))
(car forms)
(let ((base (car forms)))
(unless (listp base)
(setf base (list base)))
(list* (car base)
(test (reverse (cdr forms)))
(cdr base))))))
(defun direct-slot-defn->initarg (slot-defn)
(list :name (slot-definition-name slot-defn)
:readers (slot-definition-readers slot-defn)
:writers (slot-definition-writers slot-defn)
:initform (slot-definition-initform slot-defn)
:initargs (slot-definition-initargs slot-defn)
:initfunction (slot-definition-initfunction slot-defn)))
(defun add-slot-to-class (class name &key (initform nil) accessors readers writers initargs (initfunction (constantly nil)))
(check-type class symbol)