使用formlet时为什么会出现提升/ 5.1未定义错误?

问题描述 投票:1回答:1

我在尝试在球拍中使用formlet时遇到的错误有问题。它说:

; lifted/5.1: undefined;
;  cannot reference an identifier before its definition
;   in module: top-level
;   internal name: lifted/5.1

我的代码中没有任何内容被命名为“提升”或“5.1”或两者的任意组合。我认为这是我正在运行的黑盒子里面的东西,但我不知道是什么。

; 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")
undefined racket formlets
1个回答
0
投票

我添加了这条线

#lang racket

在你的程序的顶部。在DrRacket的左下角使用“从源确定语言”。然后运行你的程序。在我得到一个明智的错误之前,打开了一个浏览器窗口,我可以输入一个名字和一个数字。

我使用的是Racket版本6.12,因此如果您使用的是旧版本的Racket,请升级并重试。

© www.soinside.com 2019 - 2024. All rights reserved.