【发布时间】:2013-12-09 12:02:28
【问题描述】:
我的任务是解析那个列表
(100 30 5 . 50 6)
到 135.56 号
输入列表的格式始终相同
我写过:
(reduce
'string-concat
(mapcar
(lambda (x) (remove #\0 x))
(mapcar
'write-to-string
l
)
)
)
并输出 Ive "135|.|56" 然后 read-from-string 不会读取它,所以...
你知道我怎么做这个解析吗?
使用或不使用上面的代码
【问题讨论】:
-
你怎么称呼这个? CCL 不允许我有这样的列表。
-
查看my answer 到Lisp 中的递归范围添加句点? 了解更多关于点在列表中的含义。如果您想要一个名称为字符串
"."的符号,则需要将其写为|.|或\.。 -
不是关于你的特定问题,而是关于你的一般解决方案:如果你应该产生一个像
102.309这样的数字,输入(100 00 2 . 300 00 9),这不会中断,因为你会最终产生12.39?
标签: parsing common-lisp clisp