LINUX.ORG.RU

История изменений

Исправление saufesma, (текущая версия) :

Можно просто безо всяких defun slave

Я согласен с тобой. Но меня на практику никто не берёт, понимаешь.

У меня вот так

(defvar startx)
(defvar starty)
(defvar endx)
(defvar endy)
(defvar my-arrows)
(setq startx 0)
(setq starty 50)
(setq endx 0)
(setq endy 20)
(setq my-arrows nil)
(defun make-arrow (startx endx starty endy)
(make-instance 'capi:arrow-pinboard-object
                      :start-x startx :end-x endx
                      :start-y starty :end-y endy
                      :graphics-args
                      '(:thickness 1 :foreground :red)))

(setq list-of-startx (list 50 100 200))

(defun slave (list-of-startx startx endx starty endy)
(if (eq (car list-of-startx) nil)
my-arrows
(progn
(setq endx (setq startx (car list-of-startx)))
(push (make-arrow startx endx starty endy) my-arrows)
(slave (cdr list-of-startx) startx endx starty endy))))

(slave list-of-startx startx endx starty endy)
(capi:contain my-arrows)

proof
my-arrows=>(#<CAPI:ARROW-PINBOARD-OBJECT  402017EDAB> #<CAPI:ARROW-PINBOARD-OBJECT  402017E70B> #<CAPI:ARROW-PINBOARD-OBJECT  4020160803>)

Исходная версия saufesma, :

У меня вот так

(defvar startx)
(defvar starty)
(defvar endx)
(defvar endy)
(defvar my-arrows)
(setq startx 0)
(setq starty 50)
(setq endx 0)
(setq endy 20)
(setq my-arrows nil)
(defun make-arrow (startx endx starty endy)
(make-instance 'capi:arrow-pinboard-object
                      :start-x startx :end-x endx
                      :start-y starty :end-y endy
                      :graphics-args
                      '(:thickness 1 :foreground :red)))

(setq list-of-startx (list 50 100 200))

(defun slave (list-of-startx startx endx starty endy)
(if (eq (car list-of-startx) nil)
my-arrows
(progn
(setq endx (setq startx (car list-of-startx)))
(push (make-arrow startx endx starty endy) my-arrows)
(slave (cdr list-of-startx) startx endx starty endy))))

(slave list-of-startx startx endx starty endy)
(capi:contain my-arrows)

proof
my-arrows=>(#<CAPI:ARROW-PINBOARD-OBJECT  402017EDAB> #<CAPI:ARROW-PINBOARD-OBJECT  402017E70B> #<CAPI:ARROW-PINBOARD-OBJECT  4020160803>)