gpt4 book ai didi

lisp - 在 Lisp 中循环变量

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

我写了函数

(defun test ()
(let ((str1 "foo") (str2 "bar"))
(loop for s in '(str1 str2) do (message s))))

但它不起作用。 Elisp Backtrace 消息是:

Debugger entered--Lisp error: (wrong-type-argument stringp str1)

我怎样才能让它发挥作用?

P.S.: 下面的修改版可以完美运行,但我需要原版

(defun test1 ()
(loop for s in '("asdf" "fdsa") do (message s)))

最佳答案

quote 运算符(撇号是语法糖)意味着它的参数不被计算,即 (quote (str1 str2)) 返回一个包含两个参数的列表符号。使用 list 代替:(list str1 str2)

关于lisp - 在 Lisp 中循环变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/487209/

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