在数据库中存储Lisp编译函数

Dio*_*nco 2 lisp binary persistence clisp common-lisp

CLISP允许我们这样做

(compile nil #'(lambda(x) (+ x 1)))
Run Code Online (Sandbox Code Playgroud)

这将返回已编译的函数对象:

#<COMPILED-FUNCTION NIL>
Run Code Online (Sandbox Code Playgroud)

是否可以将其导出为二进制字符串,以便保留它?比如说,将其保存在数据库中,以后可以加载并运行已编译的函数.

Rai*_*wig 5

不是便携式Common Lisp.

而是将函数写入文件,使用编译文件COMPILE-FILE.然后,您在文件系统上有已编译的代码.您可以稍后加载该文件并运行该功能.您还可以将文件内容存储到数据库中.如果以后需要,则需要将数据库中的数据导出到文件中并调用LOAD加载文件.