summaryrefslogtreecommitdiffstats
path: root/sicp.org
diff options
context:
space:
mode:
Diffstat (limited to 'sicp.org')
-rw-r--r--sicp.org11
1 files changed, 11 insertions, 0 deletions
diff --git a/sicp.org b/sicp.org
index a349e51..0fa7a29 100644
--- a/sicp.org
+++ b/sicp.org
@@ -46,3 +46,14 @@ order*, the expression will be expanded to
#+END_SRC
and will evaluate to ~0~.
+*** 6
+ If I've understood it correctly, scheme uses applicative-order
+ evaluation, meaning, it evaluates the operands before appling the
+ procedure.
+
+ In the case when ~new-if~ used in the ~sqrt-iter~ procedure, the
+ operands/arguments for the ~new-if~ -- ~(good-enough? guess x)~,
+ ~guess~, ~(sqrt-iter (improve guess x) x)~ -- are evaluated. Due
+ to the last operand, which is a call to the ~sqrt-iter~ procedure,
+ we get into infinite loop of evaluating the ~sqrt-iter~ procedure
+ again and again.