如何解决列表中的 cLisp 错误EVAL:变量没有值
我有一些任务要求我在 LISP 中创建一个列表,所以我在网上使用剪辑,我将此代码用于创建我的列表并执行一些操作
(print (setq y '(2 3 4 5 6 7 8)))
(print (setq y (cons 1 y)))
(print (setq y (append y '(9))))
(print (car y))
(print (second y))
(print (third y))
(print (fourth y))
(print (fifth y))
(print (last y))
(print (second (reverse y)))
(print (setq y (reverse y)))
(print (setq y (cdr y)))
(print (setq y (reverse (cdr (reverse y)))))
(print (length y))
(print (member 9 y))
*** - EVAL: variable has no value
你能帮我理解什么是错的,该怎么做吗? 谢谢
解决方法
你应该问问自己为什么你的代码包含非打印字符。请再次尝试使用没有隐藏字符的程序。
> (length "(print (setq y '(2 3 4 5 6 7 8)))")
63
没有隐藏字符:
> (length "(print (setq y '(2 3 4 5 6 7 8)))")
33
正如 Bruno Haible 提到的,我们可以更清楚地看到:
[1]> (coerce "(print (setq y '(2 3 4 5 6 7 8)))" 'list)
(#\( #\POP_DIRECTIONAL_FORMATTING #\p #\r #\i #\n #\t #\LEFT-TO-RIGHT_OVERRIDE #\Space #\( #\POP_DIRECTIONAL_FORMATTING #\s #\e #\t #\q #\Space #\y #\LEFT-TO-RIGHT_OVERRIDE #\Space #\' #\( #\POP_DIRECTIONAL_FORMATTING #\2
#\LEFT-TO-RIGHT_OVERRIDE #\Space #\POP_DIRECTIONAL_FORMATTING #\3 #\LEFT-TO-RIGHT_OVERRIDE #\Space #\POP_DIRECTIONAL_FORMATTING #\4 #\LEFT-TO-RIGHT_OVERRIDE #\Space #\POP_DIRECTIONAL_FORMATTING #\5 #\LEFT-TO-RIGHT_OVERRIDE
#\Space #\POP_DIRECTIONAL_FORMATTING #\6 #\LEFT-TO-RIGHT_OVERRIDE #\Space #\POP_DIRECTIONAL_FORMATTING #\7 #\LEFT-TO-RIGHT_OVERRIDE #\Space #\POP_DIRECTIONAL_FORMATTING #\8 #\LEFT-TO-RIGHT_OVERRIDE #\) #\) #\)
#\POP_DIRECTIONAL_FORMATTING #\POP_DIRECTIONAL_FORMATTING #\POP_DIRECTIONAL_FORMATTING #\POP_DIRECTIONAL_FORMATTING #\POP_DIRECTIONAL_FORMATTING #\POP_DIRECTIONAL_FORMATTING #\POP_DIRECTIONAL_FORMATTING
#\POP_DIRECTIONAL_FORMATTING #\POP_DIRECTIONAL_FORMATTING #\POP_DIRECTIONAL_FORMATTING #\POP_DIRECTIONAL_FORMATTING)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。