float f(float = 0);
int main() {
float x = f();
float y = f(1);
}
float f(float a) {
return a*a;
}
|
(defun f (&optional (a 0))
(if (realp a)
(* a a)
nil))
(defvar x (f))
(defvar y (f 1))
|
Compare the two approaches to supporting default values, identifying the advantages/disadvantages (if any) of each approach.