den Code ist ursprünglich gemeint Unter der Annahme,
(cond ((diverge 1) (ture 0)))
dann das Ergebnis dieses Ausdrucks ist nicht definiert (oder besser, divergierenden, auch), wenn wir diverge
annehmen eine sein - divergierenden Betrieb - wie der Name schon sagt.
Ein diverging operation ist einer, der nicht zu einem Ergebnis konvergiert, wie zum Beispiel eine Endlosschleife.
Es gibt keine diverge
definiert im Common Lisp-Standard (welcher praktische Zweck würde es haben?), So Ihr Buch ist einfach die "Implementierungsdetails" einer divergierenden Berechnung durch Wrapping es in einem Vorgang und benennen es entsprechend.
Beachten Sie, dass der ursprüngliche Code das gleiche Verhalten aufweisen kann, wenn man davon ausgeht, dass diverge
ein Symbolmakro ist.
OP-Code könnte gültig sein und endet nie, vorausgesetzt, es gibt etwas wie '(definieren-Symbol-Makro divergieren (Schleife))' anderswo ;-) – coredump
Ah ja, Symbol Makros. Ich wollte die Komplexität niedrig halten, fügte aber eine Notiz hinzu :) –