не могу прочитать
(defun cached-display-draw-an-arrow (pane x y width height)
(declare (ignore x y width height))
(when-let (dragging-info (capi:output-pane-cached-display-user-info pane))
(destructuring-bind (center-x center-y end-x end-y)
dragging-info -------- >>>>>>>это место просто вышибает
(let* ((diff-x (- end-x center-x))
(diff-y (- end-y center-y))
(len-square (+ (* diff-x diff-x) (* diff-y diff-y))))
(when (> len-square 5) ;; don't try too short
(let* ((len (sqrt len-square))
(angle (atan diff-y diff-x))
(scale (/ len 100)))
(gp:with-graphics-translation (pane center-x center-y)
(gp:with-graphics-rotation (pane angle)
(gp:with-graphics-scale (pane scale 1)
(cached-display-internal-draw-an-arrow pane))))))))))
(destructuring-bind (parameter*) list
body-form*) здесь всё понятно, а в
примере приведённом выше не могу понять где vars list form
(destructuring-bind (x y z) (list 1 2 3)
(list :x x :y y :z z)) ==> (:X 1 :Y 2 :Z 3)
The form
(when-let (position (search string1 string2))
(print position))
macroexpands to
(let ((position (search string1 string2)))
(when position
(print position)))