如何在 lisp 程序中导入"compile-regexp"?



我是LISP的新手,想运行一个包含如下函数的程序:

(defun number-string-p (s)
(match-regexp
#.(compile-regexp "^\([+-]\|\)\([0-9][0-9.,]*\|[0-9.,]*[0-9]\)$") s))

我在运行它的时候得到了COMPILE-REGEXP is undefined。似乎match-regexpcompile-regexp不是LISP中的内置函数。在这方面我该怎么办?有要进口的包裹吗?我找了很多,但没能解决这个问题。

compile-regexp是Allegro CL很久以前提供的一个函数,事实上它仍然提供,但只是向后兼容性:请参阅此处。

如果你想让这段代码在Allegro之外的Lisp中运行,那么你要么需要围绕CL-PPCRE之类的东西编写一个兼容的填充程序,它可以通过Quicklisp用于任何最近的Common Lisp实现,要么你需要更改代码以直接使用CL-PPCRE。

最新更新