公共lisp从字符串中的名称加载包

公共lisp从字符串中的名称加载包,lisp,common-lisp,clisp,Lisp,Common Lisp,Clisp,我正在使用mod_lisp以及位于的modlisp-clisp.lisp文件。我想根据服务器id字段加载不同的包,以便设置不同的站点。我正试着和你一起做这件事 (server-id:fetch-content request) 服务器id带引号和不带引号,但找不到包。一些文件搜寻发现我找到了包裹,但当我找到时 ((find-package server-id):fetch-content request) 上面说 (FIND-PACKAGE SERVER-ID) should be a la

我正在使用mod_lisp以及位于的modlisp-clisp.lisp文件。我想根据服务器id字段加载不同的包,以便设置不同的站点。我正试着和你一起做这件事

(server-id:fetch-content request)
服务器id带引号和不带引号,但找不到包。一些文件搜寻发现我找到了包裹,但当我找到时

((find-package server-id):fetch-content request)
上面说

(FIND-PACKAGE SERVER-ID) should be a lambda expression.
如果包名为字符串,如何加载包

是其他系统所称的

您必须使用或(或文档指示您执行的任何操作)使所需的功能(包括包和函数)可用


代码加载到Lisp后,您可以使用查看哪些包现在可用。

如果您想在调用函数时使用不同的符号,则必须计算它们

(funcall (find-symbol (compute-the-name) (compute-the-package))
         arg1 ... argn)
请注意,包名和符号名通常都是大写字符串

CL-USER 6 > (funcall (find-symbol "EXPT" "CL") 3 4)
81

请注意,您不应该让网络上的用户指定任意函数和参数,然后调用这些函数和参数而不进行错误检查。

我知道,我正在这样做。正在加载该文件,但如果调用该文件中定义的函数,则无法识别该文件。因此,我试图在函数中添加包名前缀,但不知道如何从字符串中获取可以用作包名的内容。是否正在运行(非大小写转换)?