gpt4 book ai didi

lisp - 如何显式使用标准函数?

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

在下面的示例中,我遇到了与 iteratecount 标准函数的名称冲突:

(defun svs-to-images (file)
(with-open-file (stream file)
(iterate:iter
(iterate:for line #:= (read-line stream nil nil))
(iterate:while line)
(line-to-image
(iterate:iter
(iterate:for c #:in-string line)
(iterate:with word)
(iterate:with pos #:= 0)
(iterate:with result #:= ; ---------\/ here
(make-array (list (1+ (count #\, line)))
:element-type 'fixnum))
(if (char= c #\,)
(setf (aref result pos)
(parse-integer
(coerce (reverse word) 'string))
pos (1+ pos)
word nil)
(setf word (cons c word)))
(iterate:finally result)) 28))))

我得到的错误是:

csv-parser.lisp:19:5:
error:
during macroexpansion of
(ITERATE:ITER
(ITERATE:FOR LINE #:= ...)
(ITERATE:WHILE LINE)
...).
Use *BREAK-ON-SIGNALS* to intercept:

Iterate, in (COUNT , LINE):
Missing value for LINE keyword

Compilation failed.

而且,如果我理解正确的话,它正在尝试使用 count,就好像它是来自 iteratecount 驱动程序,而不是原来的功能。我该怎么做才能使用正确的 count

最佳答案

在 comp.lang.lisp 中,Chris Riesbeck 提出了这个作为几年前类似问题的解决方法:

(remprop 'count 'iter::synonym)

从那时起,您需要使用 COUNTING 作为迭代子句。 CL:COUNT 那么应该指的是 Common Lisp 函数。您需要重新编译代码。

关于lisp - 如何显式使用标准函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13900895/

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