为什么在使用 formlet 时出现 lifted/5.1 未定义错误?
Why am I getting lifted/5.1 undefined error while using formlets?
我在尝试在 racket 中使用 formlet 时遇到了一个错误。它说:
; lifted/5.1: undefined;
; cannot reference an identifier before its definition
; in module: top-level
; internal name: lifted/5.1
我的代码中没有任何内容被命名为 "lifted" 或“5.1”或两者的任意组合。我在想这是我 运行 反对的 formlet 黑匣子里的东西,但我不知道是什么。
; set up
(require web-server/servlet web-server/servlet-env)
(require web-server/formlets)
; body of program
(define simpleformlet
(formlet
(#%#
"Name: " ,{input-string . => . name}
"Number: " ,{input-int . => . number})
(name number)))
(define (start request)
(showpage request))
(define (showpage request)
(define (responsegen embed/url)
(response/xexpr
`(html
(head (title "App3"))
(body (h1 "Let's try this...")
(form
([action ,(embed/url actionhandler)]
[method "POST"])
,@(formlet-display simpleformlet)
(input ([type "submit"])))))))
(define (actionhandler request)
(define-values (name number)
(formlet-process simpleformlet request))
(response/xexpr
`(html
(head (title "Alright!"))
(body (h2 "name")
(p ,name)
(h2 "number")
(p ,number)))))
(send/suspend/dispatch responsegen))
; run it!
(serve/servlet start
#:servlet-regexp #rx""
#:servlet-path "/form")
我添加了行
#lang racket
在程序的顶部。在 DrRacket 的左下角使用 "Determine language from source"。还有 运行 你的程序。浏览器 window 打开,我可以输入姓名和号码,然后出现明显错误。
我使用的是 Racket 6.12 版本,所以如果您使用的是旧版本的 Racket,请升级并重试。
我在尝试在 racket 中使用 formlet 时遇到了一个错误。它说:
; lifted/5.1: undefined;
; cannot reference an identifier before its definition
; in module: top-level
; internal name: lifted/5.1
我的代码中没有任何内容被命名为 "lifted" 或“5.1”或两者的任意组合。我在想这是我 运行 反对的 formlet 黑匣子里的东西,但我不知道是什么。
; set up
(require web-server/servlet web-server/servlet-env)
(require web-server/formlets)
; body of program
(define simpleformlet
(formlet
(#%#
"Name: " ,{input-string . => . name}
"Number: " ,{input-int . => . number})
(name number)))
(define (start request)
(showpage request))
(define (showpage request)
(define (responsegen embed/url)
(response/xexpr
`(html
(head (title "App3"))
(body (h1 "Let's try this...")
(form
([action ,(embed/url actionhandler)]
[method "POST"])
,@(formlet-display simpleformlet)
(input ([type "submit"])))))))
(define (actionhandler request)
(define-values (name number)
(formlet-process simpleformlet request))
(response/xexpr
`(html
(head (title "Alright!"))
(body (h2 "name")
(p ,name)
(h2 "number")
(p ,number)))))
(send/suspend/dispatch responsegen))
; run it!
(serve/servlet start
#:servlet-regexp #rx""
#:servlet-path "/form")
我添加了行
#lang racket
在程序的顶部。在 DrRacket 的左下角使用 "Determine language from source"。还有 运行 你的程序。浏览器 window 打开,我可以输入姓名和号码,然后出现明显错误。
我使用的是 Racket 6.12 版本,所以如果您使用的是旧版本的 Racket,请升级并重试。