(+ 2 (let/cc cont
(begin
(set! global-cont cont)
3)))
5
global-cont
#<continuation>
(global-cont 5) ; global-cont: (+ 2 _)
7
我知道整个块(+ 2 ... 3)))
是连续的。但是为什么global-cont
也是延续?我试图检查let/cc
document,但这很难理解。
答案 0 :(得分:1)
在此表达式中:
import {
ChangeDetectionStrategy,
Component,
OnInit
} from "@angular/core";
import { Observable, interval } from "rxjs";
import { map, distinctUntilChanged } from "rxjs/operators";
import moment, { Moment } from "moment"; // using @types/moment
@Component({
selector: "app-clock",
templateUrl: "./clock.component.html",
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ClockComponent implements OnInit {
pageLoaded: Moment;
time: Observable<string>;
constructor() {}
ngOnInit() {
this.time = interval(1000*60).pipe( // why you need 1s interval with HH:mm time format simply update it every minute not every second.
map(() => {
this.pageLoaded = moment(new Date()); // you need the value of now not the value of the initialized time.
return this.pageLoaded.format("HH:mm A");
})
);
}
}
(let/cc cont body ...)
是 continuation cont
,在体内,您正在执行以下操作:
(+ 2 _)
因此,基本上,您是将(set! global-cont cont)
分配给cont
,这也是它的延续。
答案 1 :(得分:1)
我认为我不同意“整个块(+ 2 ...)是连续的”。如果用“继续”来表示“由let / cc或它的等价物(呼叫/ cc等)捕获的值”,那么整个块就不是延续。
因此:cont
是续集,因为您是用let/cc
捕获的。 global-cont
是一个延续,因为您为其分配了一个延续。