2016-03-04 149 views
-3

Code and Warning我得到了我的Lisp程序一些警告,但我不知道如何解決他們

這是我的代碼和警告。如果有人知道我如何擺脫這些警告,我會很感激,因爲我的代碼給出了正確的輸出。

+0

HTTP:/ /stackoverflow.com/q uestions/267862/what-make-lisp-macros-so-special –

+2

請發佈實際代碼,而不是代碼圖片。 –

+1

我認爲你誤解了** defmacro **的參數列表。做'(defmacro lcomp(exp for var in list)...)'意味着你可以調用'(lcomp a b c d e)'。我不認爲這就是你的期望,是嗎? –

回答

2

他們有兩種方式:

  1. 你實際使用的變量FORIN
  2. declare to ignore變量FORIN

例子:

CL-USER 30 > (defmacro foo (bar) 
       `(list)) 
FOO 

CL-USER 31 > (compile 'foo) 
;;;*** Warning in FOO: BAR is bound but not referenced 
FOO 
((FOO #<CONDITIONS::SIMPLE-STYLE-WARNING 402000E4DB>)) 
NIL 

CL-USER 32 > (defmacro foo (bar) 
       (declare (ignore bar)) 
       `(list)) 
FOO 

CL-USER 33 > (compile 'foo) 
FOO 
NIL 
NIL 
+0

我明白了,但是我應該添加到我的代碼中以便將警告消除? –

+0

@Tim Jones:你看過這個例子嗎? –

+0

是的,但我不完全明白它 –

相關問題