我有一个全局变量的大名单,每个变量都有自己的设置功能。我的目标是通过这个列表,调用每个项目的设置函数,并为匹配变量中加载的数据生成一些统计信息。然而,我现在正在尝试的是不工作,我需要帮助,使我的程序调用设置功能。函数名称作为Lisp中的字符串?
全局变量及其设置函数区分大小写,因为它来自XML并且是唯一性所必需的。
的数据看起来是这样的:
'(ABCD ABC\d AB\c\d ...)
和设置功能如下所示:
(defun setup_ABCD...
(defun setup_ABC\d...
我已经试过串联在一起,他们并打开生成的字符串成一个函数, 但是这会干扰先前加载的设置功能的名称空间。以下是我试图执行的是:
(make-symbol (concatenate 'string "setup_" (symbol-name(first '(abc\d)))))
但是使用这个funcall
不起作用。我怎样才能从这个获得可调用的函数?
如果没有人的答案奏效,将它标记为已通过点击打勾即可。 – Pablo 2008-11-17 11:07:01
Lisp中的namegiving标准是使用连字符而不是下划线。此外,读者在内部大写所有符号,标准是将它们写成小写,所以调用您的设置函数的标准方式是“setup-abcd”。 – Svante 2008-11-17 13:00:36