September 9th, 2012

with Cat The Cat

Первые результаты.

>grep -i defmacro *.lisp | wc -l
541
>wc -l *.lisp
118258
>egrep -i "(defun|defmfun) *.lisp | wc -l
5476
defmfun - макро, определяющее функцию специального вида. Я не очень понял, какого, но это явно определение функции.
(defmacro defmfun (function &body  rest &aux .n.)
  (cond ((and (car rest) (symbolp (car rest)))
         ;;old maclisp narg syntax
         (setq .n. (car rest))
         (setf (car rest)
               `(&rest narg-rest-argument &aux (, .n. (length narg-rest-argument))))))
  `(progn
    ;; I (rtoy) think we can consider all defmfun's as translated functions.
    (defprop ,function t translated)
    (defun ,function . ,rest)))

;;sample usage
;;(defmfun foo a (show a )(show (listify a)) (show (arg 3)))
Если кто поможет с пониманием, что же здесь происходит, буду благодарен.

PS
Исправил количество определяемых функций, выбросив комментарии и употребление в макросах.