| CL-USER> (defun new-if (predicate then-clause else-clause) (cond (predicate then-clause) (t else-clause))) NEW-IF CL-USER> (new-if (= 2 3) 0 5) 5 CL-USER> (new-if (< 2 3) 0 5) 0 CL-USER> |
如果用new-if 带入 sqrt-iter 会造成死循环,然后 stack overflow 了
应该是schema lisp 里的语法解析有关系, new-if 根本没有执行到。