如何在Lisp中运行等效的Python命令
from lib import func
例如,我想使用split-sequence
包,特别是我只想要该包中的split-sequence
方法。
目前,我必须将其用作(split-sequence:split-sequence #\Space "this is a string")
。
但我想做的是(split-sequence #\Space "this is a string")
。
如何直接访问该功能而不使用包名称进行限定?
答案 0 :(得分:7)
您想要做的只是:
(import 'split-sequence:split-sequence)
这在REPL中工作正常,但如果你想组织你的符号,你最好依赖包。
(defpackage #:my-package
(:use #:cl)
(:import-from #:split-sequence
#:split-sequence))
第一个split-sequence
是包,后跟所有应导入的符号。在DEFPACKAGE
表单中,人们通常使用上述关键字或未加密符号,以避免当前包中的内部符号。或者,您可以使用字符串,因为只有符号的名称很重要:
(defpackage "MY-PACKAGE"
(:use "CL")
(:import-from "SPLIT-SEQUENCE" "SPLIT-SEQUENCE"))