Add CALLBACK-FUNCTOR that allows the call back arbitrary functions

(in conjunction with make-annotated-callback)
This commit is contained in:
interp 2003-04-16 16:01:01 +00:00
parent a9f5c6ffa7
commit 61c5cf4246
1 changed files with 11 additions and 1 deletions

View File

@ -1,5 +1,11 @@
;; Copyright 2002, 2003 Andreas Bernauer
;; With callbacks you can create special links that are associated
;; with a function. If the user clicks on the special callback link,
;; the send-html/suspend won't return, but the function will be called
;; instead. Note: It is not sensible to create callbacks on top level,
;; as they contain continuations. You have to create a new callback
;; every time you want to use it (inside a function).
(define (make-callback function)
(call-with-current-continuation
(lambda (exit)
@ -23,3 +29,7 @@ unexpected return values from website"))))))
(callback (make-callback dispatch)))
(lambda args
(annotated-address callback args))))
(define callback-functor
(lambda (req proc . args)
(apply proc (cons req args))))