下山学CAD 发表于 2024-1-30 15:49:24

菜鸟求大佬帮助,lisp中read函数的问题.

有没有办法保留"+"号?




[*] (setq list1 '("+1" "-2" "=3"));返回 ("+1" "-2" "=3")建立列表
[*]
[*] (setq list2 (vl-princ-to-string list1));返回 "(+1 -2 =3)"列表转字符串(输入TXT文件)
[*]
[*] (read list2);返回 (1 -2 =3) 读取字符串(需要+号,但read函数不能读取)


这是最后要的结果,但是没有"+"号;

[*](setq list3 (mapcar '(lambda(x)(vl-princ-to-string x))(read list2)));返回 ("+1" "-2" "=3")


Andyhon 发表于 2024-1-30 16:11:13

Command: (type (read "+1"))
INT

Command: (type (read "-2"))
INT

Command: (type (read "=3"))
SYM

下山学CAD 发表于 2024-1-30 16:32:18

Andyhon 发表于 2024-1-30 16:11
Command: (type (read "+1"))
INT



感谢您的回复,我这边已经找到方法了,把vl-princ-to-string改成vl-prin1-to-string就能显示"+"了;

飞雪神光 发表于 2024-1-30 16:32:27

那试试改变txt格式呢改用read-line?

弥勒 发表于 2024-1-30 17:11:57


:handshake
页: [1]
查看完整版本: 菜鸟求大佬帮助,lisp中read函数的问题.