与python习惯用法等效的公共lisp
如何在Lisp中运行此Python命令的等效程序与python习惯用法等效的公共lisp,python,lisp,common-lisp,Python,Lisp,Common Lisp,如何在Lisp中运行此Python命令的等效程序 from lib import func 例如,我想使用splitsequence包,特别是我只想从该包中使用splitsequence方法 目前,我必须将其用作(拆分序列:拆分序列#\Space“这是一个字符串”) 但我想做的是(拆分序列#\Space“这是一个字符串”) 如何在不使用软件包名称限定的情况下直接访问函数?您只需执行以下操作: (import 'split-sequence:split-sequence) 这在REPL中工作得
from lib import func
例如,我想使用splitsequence
包,特别是我只想从该包中使用splitsequence
方法
目前,我必须将其用作(拆分序列:拆分序列#\Space“这是一个字符串”)
但我想做的是(拆分序列#\Space“这是一个字符串”)
如何在不使用软件包名称限定的情况下直接访问函数?您只需执行以下操作:
(import 'split-sequence:split-sequence)
这在REPL中工作得很好,但是如果您想组织符号,最好依赖于包
(defpackage #:my-package
(:use #:cl)
(:import-from #:split-sequence
#:split-sequence))
第一个̀拆分序列
是包,后面是所有应导入的符号。在表单中,为了避免在当前包中插入符号,人们通常使用关键字或上述不需要的符号。或者,您可以使用字符串,因为只有符号的名称才重要:
(defpackage "MY-PACKAGE"
(:use "CL")
(:import-from "SPLIT-SEQUENCE" "SPLIT-SEQUENCE"))
你是怎么解决那个问题的?Stackoverflow不是为了学习编程语言的基础知识。这里有一些很好的介绍性书籍和语言规范。我浏览了实用的通用Lisp,然后跳了进去。我学到了很多关于这种语言的知识,并且可以开始编写代码。这只是我在略读时遗漏的一些小东西。我发现只要我投入进去,我就能学得最好。在PCL中,有一章是关于这些事情的,在我发布之前,我花了很多时间试图看看我是否可以让
Intern
和关键字
来做这件事。请注意,尽管这是正确的答案,但语义与python的大不相同:特别是CL习语意味着一个单一的名称(符号)在两个包中都可见,而在Python中,单个对象由两个不同的名称引用。