Ati*_*nch 9 lisp database persistence common-lisp
是否存在允许函数持久性的Common Lisp的持久性解决方案,例如Elephant?目前,我的应用程序在数据库中存储了一个标识符,稍后在函数表中进行搜索,但是此方法不允许存储动态创建的函数.
它不是数据库持久化机制,但大多数 Common Lisp 都有一种为各种对象(包括函数)编写 FASL的方法。例如:
cl-user(1): (compile (defun hello () (format t "~&Hello~%")))
hello
nil
nil
cl-user(2): (excl:fasl-write (symbol-function 'hello) "/tmp/hello.fasl")
t
cl-user(3): (excl:fasl-read "/tmp/hello.fasl")
(#<Function hello @ #x1000a964d2>)
Run Code Online (Sandbox Code Playgroud)
您可以写入流(这里为了方便起见,我使用了文件),因此您可以轻松捕获这些字节并将它们填充到数据库中(如果您愿意)。