我一直在尝试通过代码生成变量,而不是手动定义它们。问题是,当程序创建它们时,它们被定义为全局变量。有没有办法将它们生成为局部变量?
下面是我为测试它而编写的示例代码。
- ;ListToVariables creates variables named testvar0, testvar1, testvar2, etc.
- ;Each newly created variable contains the contents of the correlated slot from testlist.
- (defun c:test ( / testlist )
- (setq testlist (list "aaa" "bbb" "ccc" "ddd" "eee"))
- (ListToVariables testlist)
- )
- (defun ListToVariables ( listname / i )
- (setq i 0)
- (repeat (length listname)
- (set (read (strcat "testvar" (rtos i 2 0))) (nth i listname))
- (setq i (1+ i))
- )
- (princ)
- )
|