Вам нужно удалить самый внешний набор паренов, как это.
(loop for line = (read-line stream nil)
until (null line)
do
(setq num (substring line 6))
(print line))
Тело цикла имеет неявное progn
вокруг него, когда вы добавляете лишние парены, читатель будет ожидать, что первое в списке (в данном случае (setq num (substring line 6))
будет символом с функцией. Очевидно, что setq
форма не соответствует этим критериям, поэтому она не будет выполнена, хотя я не уверен, почему она говорит, что это должно быть лямбда-выражение.
Примечание стиля:
Не используйте парены, как в фигурных скобках в Java или C ++!
do (
&body
)
- это плохой стиль Лиспа, закройте все парены в последней строке, как я указал в своем ответе, и откройте парены в той же строке, что и форма, в которой начинается левое слово.