On this page:
top
up

5.3Serializable ClosuresπŸ”— i

The defunctionalization process of the Web Language (see Stateless Servlets) requires an explicit representation of closures that is serializable.

package: web-server-lib

syntax

( serial-lambda formalsbody...)

Returns (lambda formalsbody... ), except it is serializable.

syntax

( serial-case-lambda [formalsbody...]...)

Returns (case-lambda [formalsbody... ]... ), except it is serializable.

syntax

( define-closure tagformals(free-var...)body)

Defines a closure, constructed with make-tag that accepts a closure that returns freevar... , that when invoked with formals executes body.

Here is an example:
(require racket/serialize)
(define-closure foo(ab)(xy)
(+ (- ab)
(* xy)))
(define f12(make-foo(lambda ()(values 12))))
(serialize f12)
'((1)1(('page. foo:deserialize-info))0()()(012))
(f1267)
1
(f1291)
10
(define f45(make-foo(lambda ()(values 45))))
(serialize f45)
'((1)1(('page. foo:deserialize-info))0()()(045))
(f4512)
19
(f4588)
20

top
up

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /