列表中的cLisp错误(EVAL:variable‭‬没有值)



我有一些任务要求我在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)

最新更新