Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与python习惯用法等效的公共lisp_Python_Lisp_Common Lisp - Fatal编程技术网

与python习惯用法等效的公共lisp

与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中工作得

如何在Lisp中运行此Python命令的等效程序

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中,单个对象由两个不同的名称引用。