Я пытаюсь понять семантику вызова /cc в Схеме, а на странице Википедии на продолжениях показана головоломка инь-ян в качестве примера:
(let* ((yin
((lambda (cc) (display #\@) cc) (call-with-current-continuation (lambda (c) c))))
(yang
((lambda (cc) (display #\*) cc) (call-with-current-continuation (lambda (c) c)))) )
(yin yang))
Он должен вывести @*@**@***@****@...
,
но я не понимаю, почему; Я ожидаю, что он выведет @*@*********
...
Может кто-нибудь объяснить подробно, почему головоломка инь-ян работает так, как она работает?