Scheme 球拍中的延续类型和确定当前延续

Scheme 球拍中的延续类型和确定当前延续,scheme,racket,continuations,callcc,Scheme,Racket,Continuations,Callcc,球拍的续集是什么类型的?以及如何在调用/cc调用时确定当前继续?(例如:假设当前延续是call/cc结束括号后紧接着的内容,这是正确的策略吗?延续是一个过程(在这个意义上,它是可调用的,并且对于过程返回true?),尽管它是一个特殊的延续,不会返回给延续的调用者 调用延续的值将成为创建它的call/cc调用的返回值 例如: > (define $k #f) > (call-with-values (lambda () (call/cc (lambda (k)

球拍的续集是什么类型的?以及如何在调用/cc调用时确定当前继续?(例如:假设当前延续是call/cc结束括号后紧接着的内容,这是正确的策略吗?

延续是一个过程(在这个意义上,它是可调用的,并且对于
过程返回true?
),尽管它是一个特殊的延续,不会返回给延续的调用者

调用延续的值将成为创建它的
call/cc
调用的返回值

例如:

> (define $k #f)
> (call-with-values (lambda () (call/cc (lambda (k)
                                          (set! $k k))))
                    (case-lambda (() "Zero values")
                                 ((x) "One value")
                                 ((x y) "Two values")
                                 ((x y z) "Three values")))
"One value"
> (procedure? $k)
#t
> ($k)
"Zero values"
> ($k 1)
"One value"
> ($k 1 2)
"Two values"
> ($k 1 2 3)
"Three values"
> ($k 1 2 3 4)
#<case-lambda-procedure>: arity mismatch;
 the expected number of arguments does not match the given number
>(定义$k#f)
>(使用值调用(lambda())(调用/cc(lambda(k)
(套装!$k)))
(案例lambda(()“零值”)
((x)“一个价值”)
((x y)“两个值”)
((x y z)“三个值”))
“一个值”
>(程序?$k)
#t
>(千美元)
“零值”
>($k 1)
“一个值”
>(港币12元)
“两个价值”
>($123)
“三个价值”
>(1234元)
#:算术不匹配;
参数的预期数量与给定数量不匹配