Anaphoric constructs for Dylan
Sometimes, in a program, we want to test if an expression returns a
value or is #f, and if so, to do something with the value. If the
expression is costly to evaluate, then we must do something like this:
let result = big-long-calculation();
if (result)
foo(result)
end;But with aif we could say:
aif(big-long-calculation())
foo(it)
end;or
aif(big-long-calculation())
foo(it)
else
bar()
end;On Lisp (ch 14), by Paul Graham, for original Lisp implementation