首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Common Lisp中隐藏整个包

在Common Lisp中,可以使用包的特性来隐藏整个包。包是一种用于组织和管理符号的机制,可以将符号分组并限定其可见性。要隐藏整个包,可以按照以下步骤进行操作:

  1. 创建一个新的包,用于隐藏目标包。可以使用make-package函数创建一个新的包,例如:
代码语言:txt
复制
(defpackage #:hidden-package
  (:use #:cl))

上述代码创建了一个名为hidden-package的新包,并使用了cl包作为其基础。

  1. 将目标包的符号移动到隐藏包中。可以使用shadowing-import函数将目标包中的符号导入到隐藏包中,并将其从目标包中删除,例如:
代码语言:txt
复制
(shadowing-import 'target-package:*)
(unexport 'target-package:*)

上述代码将目标包中的所有符号导入到隐藏包中,并使用unexport函数将这些符号从目标包中取消导出。

  1. 将隐藏包导出为目标包的别名。可以使用export函数将隐藏包导出为目标包的别名,以便在使用时可以直接引用目标包的符号,例如:
代码语言:txt
复制
(export 'hidden-package:*
        'target-package:*)

上述代码将隐藏包中的符号导出为目标包的别名,使得在使用时可以直接使用目标包的符号。

通过以上步骤,整个包就被隐藏起来了。在使用时,可以直接引用目标包的符号,而无需显式地引用隐藏包。

需要注意的是,上述方法只是一种隐藏包的方式,实际应用中可能还需要考虑其他因素,如包的依赖关系、符号冲突等。具体的实现方式可能会因应用场景而有所不同。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

6.计算机语言的发展 编程语言发展 编程语言类型 为什么会有编程语言 编程语言什么作用 机器语言 高级语言分类 编程语言历史 编程语言有哪些 编程语言编年史

语言 计算机语言指用于人与计算机之间通讯的语言,也即是平时说的编程语言 编程 指令的概念很早就形成了,其实指令本身就是一种编程 一个指令替代了一组逻辑电路或者机电式/机械式的一个计算单元 你只需要一个指令就相当于已经操作了一整个的模块...使用接近人习惯的自然语言和数学语言符号 能够专注于问题本身的业务逻辑 显然高级语言也是不能直接运行于机器上的,需要翻译程序转换为机器可以执行的目标代码程序 虽然高级语言不涉及寄存器这些东西,不需要你了解硬件 但是这是高级语言隐藏了她们...,而不是说这些东西不存在不重要,所有的语言都逃不过这一关 始终是要编程机器语言的 也正是由于隐藏了太多东西,就好像与底层的东西隔着好几层玻璃 尽管看的见,但是自然清晰度下降 直接后果就是编译后的文件变得更大...1972 – Prolog 1973 – ML 1975 – Scheme 1978 – SQL 1980 – C++ (既有类的C语言,更名于1983年7月) 1983 – Ada 1984 – Common...1989 – FL 1990 – Haskell 1991 – Python 1991 – Visual Basic 1993 – Ruby 1993 – Lua 1994 – CLOS (ANSI Common

15.4K20

Lisp语言简介_c++是什么语言

LISP有很多种方言,各个实现的语言不完全一样。1980年代Guy L. Steele编写了Common Lisp试图进行标准化,这个标准被大多数解释器和编译器所接受。...LISP语言的主要现代版本包括Common Lisp和Scheme。 基本介绍 LISP 是第一個函數型程式語言,区别于C/Java等命令型编程语言。...Lisp的表达式是一个原子(atom)或表(list),原子(atom)又包含符號(symbol)與數值(number);表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号:...在 Lisp 我们习惯用原子 t 表示真,而用空表 () 表示假。...如果能找到这样的p表达式,相应的“结果表达式e”的值作为整个cond表达式的返回值. > (cond ((eq ‘a ‘b) ‘first) ((atom ‘a) ‘second)) second 函数

2.3K20
  • Clojure与LispClojure与Lisp

    (艾伦·凯) "任何C或Fortran程序复杂到一定程度之后,都会包含一个临时开发的、只有一半功能的、不完全符合规格的、到处都是bug的、运行速度很慢的Common Lisp实现。"...1984年,改良自MacLisp、集各版本大成、跨平台、且被目为事实标准的Common Lisp诞生。至1994年,美国国家标准学会(ANSI)对Common Lisp语言进行了标准化。...自稳定运行的Common Lisp出现起,再有各机构按各自所需而开展后续Lisp,包括1990年来自欧洲用户的EuLisp、运行于Java虚拟机的Clojure、受到Maclisp影响而创的Emacs...8 代码使用符号和常量组成的树形表示法(notation) 9 无论什么时候,整个语言都是可用的 Lisp并不真正区分读取期、编译期和运行期。...Lisp宏无所不,它既可能是某样表达式的缩略形式,也可能是一种新语言的编译器。如果你想真正地理解Lisp语言,或者想拓宽你的编程视野,那么你必须学习宏。

    1.9K30

    Emacs 折腾记

    我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,历数现代 Lisp 方言的先进性,再者我也一直有学习一门函数式编程语言的想法...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...本来什么也不用配置的情况下 M-x ielm 就能进入一个 Emacs Lisp 的 REPL,但是它与 Common Lisp 毕竟还是有区别,所以还是另配置一个。...在 ~/.emacs 文件里加上: M-x slime 就可以进入到 REPL 进行 Common Lisp 的学习了。...在 Vim 我一直是用 :!

    1.3K20

    SCIP学习笔记

    引言 SCIP(Structure and Interpretation of Computer Programs)[1]是MIT自1984年起的编程入门教程,尽管最近他们用Python的课程取代了Lisp...语言,但是随着工业界越来越多的应用函数编程语言,Clojure、Scala、Racket,以及软件开发使用并发的趋势(见文章[2]),重读SCIP是很有意义的。...Lisp基本语法 Lisp的原始定义在John McCarthy1960发表的论文[3]。 Lisp[4]是一个语言族,包括Common Lisp和Scheme,二者区别见[5]。...构造数据抽象 闭 (这里指的不是匿名函数) 是在处理符合数据的一个关键思想:用于组合数据对象的粘合剂,不但能用于组合基本的数据对象,同样也可以用复合数据的对象。...Wiki: 闭是引用了自由变量的函数 序对 用来粘合两个对象,用法: (define x (cons 1 2)) (car x) ; 1 (cdr x) ; 2 序对的一种定义: (define

    1.6K40

    一文读懂基于 Yaegi 解释器开发可热插拔的 Traefik 插件

    3、Gisp:Gisp 是一个使用 Go 语言编写的 Lisp 解释器,它支持基本的 Lisp 语法和函数,并提供了一些扩展功能, Go 函数和类型的调用。...它支持动态类型、高阶函数、闭、宏扩展等 Lisp 特性,并能够直接调用 Go 语言的函数和方法。...与上述相比较,Golo 是一个更加复杂和功能更为丰富的 Lisp 方言,其语法和特性与 Common Lisp 有很多相似之处。...这里,我们以 Yaegi 在运行时加载并执行 Go 为简要场景,即 Yaegi 可以用于在运行时加载并执行整个 Go ,而不需要将编译成可执行的二进制文件。...fmt.Println(res) } 在此示例,我们使用 Yaegi 在运行时使用标准库的 “plugin” 加载 Go 插件。

    1.7K51

    Emacs 折腾记

    我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,还有垠神也撰文《Lisp 已死,Lisp 万岁!...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...本来什么也不用配置的情况下 M-x ielm 就能进入一个 Emacs Lisp 的 REPL,但是它与 Common Lisp 毕竟还是有区别,所以还是另配置一个。...)) (slime-setup '(slime-company)) M-x slime 就可以进入到 REPL 进行 Common Lisp 的学习了。...python % 来运行的,但是在 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入

    1.9K10

    走进 racket(lisp) 的世界

    上周追着看了个大牛的好几篇文章,发现一个叫racket的语言出镜率颇高 —— 这已经是我十月来第三次从各种大牛的文章接触这个词。...golang,erlang。 ✓ 日常使用:只要是需要写代码的地方,下手首先想到的就是TA。python。当然,C也是我日常使用的语言,只不过C是工作语言而已。...racket是一个lisp [1] 家族的语言,祖上是common lisp [2] 对立的阵营scheme [3],起初为教学的目的而创立。...racket在osx/linux/windows下都有各自的安装,在其官网上下载安装即可。racket自带了一个有REPL功能的简单的IDE DrRacket,方便初学者领略语言的魅力。...markdown,asciidoc一样,scribble语言可以用来书写文档,并进一步被编译成html,pdf等多种格式。

    2.5K30

    惊呆了,老外竟然用50编程语言写“Hello,Word!”,我服了...

    Cobol 是 COmmon Business Oriented Language 的缩写,人们发明它是希望将其作为业务编程应用的通用语言。2019 年,Cobol 在银行业和保险业仍然应用广泛。...它是 Lisp 语言的 3 大变种之一,另外两个变种 Common Lisp 和 Clojure 的诞生要晚得多。 (display "Hello, World!")...Common Lisp - 1984 年 Common Lisp 通常简写为 CL,是由 ANSI 标准化了的 Lisp 语言规范。 (princ "Hello, World!") 19....Eiffel 基于当今非常流行的概念,契约编程或重用等。...你能够使用 Java 做任何事情,从客户端到 Web 应用无所不;而且 Google 选择 Java,用在 Android 操作系统上作为开发应用程序的语言,这又进一步扩展了 Java 能力。

    77920

    MapReduce 原理与设计思想

    2.构建抽象模型-Map和Reduce 借鉴函数式设计语言Lisp的设计思想 —函数式程序设计(functional programming)语言Lisp是一种列表处理 语言(List processing...—Lisp定义了可对列表元素进行整体处理的各种操作,:(add #(1 2 3 4) #(4 3 2 1)) 将产生结果: #(5 5 5 5) —Lisp也提供了类似于Map和Reduce...关键思想:为大数据处理过程的两个主要处理操作提供一种抽象机制 MapReduce的Map和Reduce操作的抽象描述 MapReduce借鉴了函数式程序设计语言Lisp的思想,定义了如下的Map和...Reduce两个抽象的编程接口,由用户去编程实现: —map: (k1; v1) → [(k2; v2)] 输入:键值对(k1; v1)表示的数据 处理:文档数据记录(文本文件的行,或数据表格的行...2、失效被认为是常态(Assume failures are common) MapReduce集群中使用大量的低端服务器(Google目前在全球共使用百万台以上的服务器节点),因此,节点硬件失效和软件出错是常态

    1.4K20

    为什么Lisp语言如此先进?(译文)

    无论什么时候,整个语言都是可用的。Lisp并不真正区分读取期、编译期和运行期。你可以在读取期编译或运行代码;也可以在编译期读取或运行代码;还可以在运行期读取或者编译代码。...Lisp宏无所不,它既可能是某样表达式的缩略形式,也可能是一种新语言的编译器。如果你想真正地理解Lisp语言,或者想拓宽你的编程视野,那么你必须学习宏。...Common Lisp的写法如下:   (defun foo (n)     (lambda (i) (incf n i))) Ruby的写法几乎完全相同:   def foo (n)     ...在面向对象编程的语言中,你能够在有限程度上模拟一个闭(即一个函数,通过它可以引用由包含这个函数的代码所定义的变量)。...格林斯潘第十定律"(Greenspun's Tenth Rule): "任何C或Fortran程序复杂到一定程度之后,都会包含一个临时开发的、只有一半功能的、不完全符合规格的、到处都是bug的、运行速度很慢的Common

    1.2K60

    PHP 是最糟糕的编程语言?

    对于 LISP 程序员 Gabriel 来说,LISP 是一种比 C 更好的语言,速度和 C 一样快,而且 Common LISP 的设计、开发和标准化已经花了很多年。...LISP 易于交互,你可以通过各种方式与它交互。希望从 Fortran 调用 LISP?你可以从 Fortran 调用 LISP 并将数据传入,反之亦然。...LISP 本身并非一种单一的语言,而是一个语言家族。尽管 Common LISP 被设计成一种标准,但是 LISP 本身的实现方式是根据需要完成的各种工作而存在的。...与 LISP 不同,C 至今仍然被大量使用。尽管高级的解释性语言, PHP、JavaScript 和 Python 是许多开发者的首选,但是这些高级语言很多都是用 C 语言开发的。...整个社区提出修改意见,然后经由社区投票,决定新特性被拒绝、改变或者接受。该语言的许多创新都源于快速完成工作的需要。

    1.8K20

    excel宏编程 c语言,宏(巨集)

    Lisp类语言Common Lisp和Scheme有更精巧的宏系统: 宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。...例如,一种 Lisp 方言有 cond 而没有 if ,就可以使用宏由前者定义后者。Lisp 语法的去部主要扩展,比如面向对象的 CLOS 系统,可以由宏来定义。...Emacs 最初被设计为编辑语言 TECO 的宏集,后被移植为 Lisp 的一种方言 Emacs Lisp。Vim也允许用户录制和播放简单的键盘宏。...宏语言并未在通用编程中广泛使用,但在文本处理程序应用普遍。...其它的包括宏语言的项目,OpenOffice.org,故意从其宏语言中排除了一些功能(:自动执行)以避免破坏程序。然而,这一特性在很多事务受到欢迎。

    1.6K20

    简单解释 MapReduce 算法

    ,为程序员隐藏了绝大多数系统层面的处理细节 1.对付大数据处理-分而治之 什么样的计算任务可进行并行化计算?...—Lisp定义了可对列表元素进行整体处理的各种操作,:(add #(1 2 3 4) #(4 3 2 1)) 将产生结果: #(5 5 5 5) —Lisp也提供了类似于Map和Reduce...MapReduce的Map和Reduce操作的抽象描述 MapReduce借鉴了函数式程序设计语言Lisp的思想,定义了如下的Map和Reduce两个抽象的编程接口,由用户去编程实现: —map:...(k1; v1) → [(k2; v2)] 输入:键值对(k1; v1)表示的数据 处理:文档数据记录(文本文件的行,或数据表格的行)将以“键值对”形式传入map函数;map函数将处理这些键值对...由于有大量数据存储需要,显而易见,基于低端服务器的集群远比基于高端服务器的集群优越,这就是为什么MapReduce并行计算集群会基于低端服务器实现 2、失效被认为是常态(Assume failures are common

    2.6K100
    领券