В приближении первого порядка метод (в ОО стиле C ++) - это другое слово для функции-члена, которая является частью класса.
В таких языках, как C / C ++, вы можете иметь функции, которые не являются членами класса; Вы не вызываете функцию, не связанную с классом, методом.
new-if
is a function. When a function is called, what's the first thing that Scheme does with the argument list? It evaluates all the arguments.
Прежде всего вы должны понять разницу между оценкой аппликативного порядка и нормальным порядком. Lisp использует аппликативный порядок, но условные выражения оцениваются не как обычные функции ( sicp, глава 1.1.6 ):
(if <predicate> <consequent> <alternative>)
Чтобы оценить выражение if, интерпретатор начинает с вычисления
часть выражения. Если
<предикат>
оценивается как истинное значение, интерпретатор затем оцениваети возвращает его значение. В противном случае он оценивает
<альтернативный>
и возвращает его значение.