2016-03-04 9 views
-3

Code and Warningя получаю несколько предупреждений в моей программе на Лиспе, но я не знаю, как их решить

Это мой код и предупреждение. Если кто-нибудь знает, как я могу избавиться от предупреждений, я буду благодарен за то, что мой код дает правильный результат.

+0

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

+2

Пожалуйста, разместите фактический код, а не изображение кода. –

+1

Я думаю, вы не понимаете, что делает список аргументов ** defmacro **. Выполнение '(defmacro lcomp (exp для var в списке) ...)' означает, что вы можете вызвать '(lcomp a b c d e)'. Я не думаю, что это то, чего вы ожидаете, не так ли? –

ответ

2

Их два способа:

  1. вы на самом деле использовать переменные FOR и IN
  2. вам declare to ignore переменные FOR и IN

Пример:

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

Да, но я точно не понимаю. –

Смежные вопросы