|Arc Cross Reference|
[macro] iflet var expr then rest ...
Evaluates expr. If it yields non-nil, binds the result to var and evaluates then. Othewise interpretes rest as in if.
(mac iflet (var expr then . rest) (w/uniq gv `(let ,gv ,expr (if ,gv (let ,var ,gv ,then) ,@rest))))
See also whenlet.
In the standard Scheme terms, it captures this common pattern (NB: if rest has multiple forms, the expansion will be a bit different because of Arc's if semantics).
(cond [expr => (lambda (var) then)] [else rest])