从Lisp中的字符串创建变量名称是一个常见的编程任务,可以使用intern
函数来实现。intern
函数可以将一个字符串转换为一个符号,然后可以使用set
函数将该符号作为变量名称来设置变量的值。
以下是一个简单的示例:
(defun create-variable-from-string (str value)
(let ((symbol (intern str)))
(set symbol value)
symbol))
(create-variable-from-string "my-variable" 42)
在这个示例中,create-variable-from-string
函数接受一个字符串str
和一个值value
作为参数,然后使用intern
函数将字符串转换为一个符号,并使用set
函数将该符号作为变量名称来设置变量的值。最后,该函数返回创建的符号。
需要注意的是,使用intern
函数创建的符号默认是在COMMON
包中创建的,如果需要在其他包中创建符号,则需要使用:package
选项来指定包名称。
此外,使用intern
函数创建的符号默认是动态的,即可以随时被修改。如果需要创建一个不可修改的符号,则需要使用defconstant
或defparameter
函数来定义一个常量或参数。
领取专属 10元无门槛券
手把手带您无忧上云