gpt4 book ai didi

lisp - 在 lisp 中解析逗号分隔的字符串

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:46 24 4
gpt4 key购买 nike

我正在尝试使用下面的函数用 Common lisp 解析逗号分隔的字符串。对于 (separate-on-comma "a,b,c") 我希望输出 ("a""b""c") 但我得到 (“c”“c”“c”)。我在这里想念什么?

(defun separate-on-comma (line)
(loop
with fields = ()
with field = (make-array 0 :element-type 'character :adjustable t :fill-pointer 0)
for x across line
when (char= x #\,)
do (push field fields)
and do (setf (fill-pointer field) 0)
else
do (vector-push-extend x field)
finally
(push field fields)
(return fields)))

谢谢。

最佳答案

您只使用一个字段 数组。没关系。但是当你将它推送到 fields 列表变量时,你最好复制它。使用 copy-seq

或者在将旧字段数组插入字段列表后创建一个新的字段数组。

关于lisp - 在 lisp 中解析逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28753328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com