a
Size: a a a
a
a
A
a
a
a
aif
не елиспе, не затеняющий it
в false-ветке(defmacro akater-misc-aif (test-form then-form &rest else-forms)
(declare (indent 2))
(let ((once-only (gensym "test-form-")))
`(let ((,once-only ,test-form))
(if ,once-only (let ((it ,once-only)) ,then-form)
(cl-locally ,@else-forms)))))
(values (cl-flet ((find-broken-computer () 'computer)
(find-broken-component () 'component))
(aif (find-broken-computer)
(aif (find-broken-component)
`(repair ,it)
`(replace ,it))))
(cl-flet ((find-broken-computer () 'computer)
(find-broken-component () nil))
(aif (find-broken-computer)
(aif (find-broken-component)
`(repair ,it)
`(replace ,it)))))
;; =>
((repair component)
(replace computer))
y
ND
O
O
O
O
V(
V(
V(
O
V(
V(