2016-07-28 97 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