regex - 在 Parenscript 中使用正则表达式(正则表达式)
问题描述
我正在尝试 Parenscript。在尝试使用正则表达式函数时,我得到了意外的输出。例如,参考手册显示:
(regex "foobar")
/foobar/;
(regex "/foobar/i")
/foobar/i;
但是,在我的 repl 中,我收到错误,即函数 (parenscript:regex..) 未定义。
The function parenscript:regex is undefined.
[Condition of type undefined-function]
Restarts:
0: [continue] Retry using regex.
1: [use-value] Use specified function
2: [retry] Retry SLIME REPL evaluation request.
3: [*abort] Return to SLIME's top level.
4: [abort] abort thread (#<thread "repl-thread" running {1002319B63}>)
Backtrace:
0: (sb-impl::retry-%coerce-name-to-fun regex nil)
1: (sb-int:simple-eval-in-lexenv (regex "foobar") #<NULL-LEXENV>)
2: (eval (regex "foobar"))
--more--
我尝试将命名空间更改为 cl-user、ps 等,但没有任何效果。OTOH,只是为了检查,我尝试使用函数 sin、random 等,并且有效。我的意思是,在 repl 中输入 (sin 0.1) 会产生预期的输出。
任何帮助都会有很大帮助。
解决方案
在 SBCL 读取评估打印循环中:
CL-USER> (in-package "PS")
#<PACKAGE "PARENSCRIPT">
PS> (ps (regex "foobar"))
"/foobar/;"
PS> (in-package "CL-USER")
#<package "COMMON-LISP-USER">
cl-user> (ps:ps (ps:regex "foobar"))
"/foobar/;"
PS:PS
是 Parenscript 编译器作为宏操作符。
推荐阅读
- ssh - shh 连接到家用路由器
- php - Laravel Socialite 访问令牌和令牌
- json - 如何从python将北欧字符写入json文件?
- hibernate - Jhipster EHCache 不会从重复的实体中驱逐 id
- html - 为什么不用直接导入 ReactiveFormsModule 来使用 FormControlDirective?
- sql - SEDE 查询在所有标签中查找排名靠前的用户
- android - 内部与外部存储的文件大小限制?
- single-sign-on - 现有应用程序的单点登录 (sso)
- javascript - OpenLayers KML 增量更新
- javascript - Vue 和 Axios 的投票按钮