公共lisp从字符串中的名称加载包
我正在使用mod_lisp以及位于的modlisp-clisp.lisp文件。我想根据服务器id字段加载不同的包,以便设置不同的站点。我正试着和你一起做这件事公共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
(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
请注意,您不应该让网络上的用户指定任意函数和参数,然后调用这些函数和参数而不进行错误检查。我知道,我正在这样做。正在加载该文件,但如果调用该文件中定义的函数,则无法识别该文件。因此,我试图在函数中添加包名前缀,但不知道如何从字符串中获取可以用作包名的内容。是否正在运行(非大小写转换)?