2016-07-28 98 views
2

我想在球拍中制作一个简单的书签网页应用程序。评估球拍反应变量/ xexpr

它的意思是接收一个URL作为CGI参数,现在,我只是试图确认我收到它反映回来。

(define (start request) 
    (response/xexpr 
    (let* ([bindings (request-bindings request)] 
      [url (if (exists-binding? 'url bindings) 
        (extract-binding/single 'url bindings) 
        "NO URL")]) 
    `(html 
     (head (title "TITLE")) 
     (body (h2 "TITLE")    
      (p "URL = " url))  
      )))) 

然而,也看不到什么,我希望看到..这是一个包含

URL = http://google.com 

我看到

URL = &url; 

这表明URL被引用的页面字面上在xexpr中(作为实体对待),而不是作为变量进行评估。

那么我做错了什么?我如何获得网址评估?

回答

5

您需要使用quasiquoteunquote注入值成引述李毅华,更往往被视为他们的读者缩写等价,分别为`,。当您使用unquote/,quasiquote/`里面,它会计算表达式,并将其插入到周围的报价:

> (define url "http://google.com") 
> `(p "URL = " ,url) 
(p "URL = " "http://google.com") 

你应该把,url前面的模板来解除引用它。

有关报价和准分类的更详细说明,请参阅Appendix A of this answer

+0

好吧,我错过了,我认为在表达开始时的反作用力足以让变量评估为这样。谢谢。 – interstar