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

Common Lisp Hash-Dot #阅读器宏

Common Lisp是一种通用的编程语言,它具有强大的元编程能力和丰富的库支持。Hash-Dot是Common Lisp中的一个阅读器宏,用于简化对哈希表的操作。

阅读器宏是一种特殊的宏,它可以在代码被解析之前对代码进行转换。Hash-Dot阅读器宏的作用是提供一种简洁的语法来访问哈希表中的值。

使用Hash-Dot阅读器宏,我们可以通过以下方式访问哈希表中的值:

代码语言:txt
复制
(let ((hash-table (make-hash-table)))
  (setf (gethash 'key1 hash-table) 'value1)
  (setf (gethash 'key2 hash-table) 'value2)
  (print (hash-dot.hash1 hash-table))
  (print (hash-dot.hash2 hash-table)))

上述代码中,我们创建了一个哈希表,并使用Hash-Dot阅读器宏设置了两个键值对。然后,我们通过(hash-dot.hash1 hash-table)(hash-dot.hash2 hash-table)来访问哈希表中的值。

Hash-Dot阅读器宏的优势在于简化了对哈希表的访问,使代码更加清晰易读。它可以提高开发效率,并减少出错的可能性。

Hash-Dot阅读器宏的应用场景包括但不限于:

  1. 数据库查询结果的处理:当数据库查询结果以哈希表的形式返回时,可以使用Hash-Dot阅读器宏方便地获取所需的数据。

腾讯云提供了丰富的云计算产品,其中与Common Lisp和哈希表相关的产品包括云数据库Redis和云数据库TencentDB for PostgreSQL。

  • 云数据库Redis:腾讯云的云数据库Redis是一种高性能、可扩展的内存数据库服务,支持哈希表等数据结构。您可以使用云数据库Redis存储和访问哈希表数据。了解更多信息,请访问云数据库Redis
  • 云数据库TencentDB for PostgreSQL:腾讯云的云数据库TencentDB for PostgreSQL是一种全托管的关系型数据库服务,支持JSONB数据类型,可以存储和查询哈希表数据。了解更多信息,请访问云数据库TencentDB for PostgreSQL

通过使用腾讯云的这些产品,您可以方便地在Common Lisp中使用哈希表,并获得高性能和可靠性的支持。

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

相关·内容

日拱一卒,伯克利CS61A,作业10,用Lisp开发

return start else: return combiner(term(n), accmulate(combiner, start, n-1, term)) 再用lisp...define-macro语法,这是一个定义的语法,它可以允许我们机械性地替换代码。...比如这个例子: 这里定义的是将一个表达式执行两次的,当我们调用的twice的时候,它会将我们传入的表达式执行两次: 但如果我们不是定义,而是直接通过define来操作,就无法实现这个效果: 虽然表面上看...而使用的时候,可以保证我们传入的表达式不会被执行,而是会原封不动地替换。 另外我们观察一下define-macro表达式的返回结果,会发现它返回的其实是代码。...也就是说返回的是待执行的代码,当我们调用的时候,其实有两个步骤,一个步骤是调用define-macro拿到待执行的代码,还有一个执行代码拿到结果的步骤。

62630

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...这可能听起来很怪异,但是对于Lisp语言却是再普通不过。最常用的做法就是使用。 术语""在Lisp语言中,与其他语言中的意思不一样。...Lisp无所不包,它既可能是某样表达式的缩略形式,也可能是一种新语言的编译器。如果你想真正地理解Lisp语言,或者想拓宽你的编程视野,那么你必须学习

1.8K30

excel编程 c语言,(巨集)

对于编译语言,展开在编译时发生,进行展开的工具常被称为展开器。这一术语也常常被用于许多类似的环境中,它们是源自展开的概念,这包括键盘语言。...Lisp类语言如Common Lisp和Scheme有更精巧的系统: 的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。...一个 C 可以定义一段语法的替换,然而一个 Lisp却可以控制一节代码的计算。 获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。...例如,一种 Lisp 方言有 cond 而没有 if ,就可以使用由前者定义后者。Lisp 语法的去部主要扩展,比如面向对象的 CLOS 系统,可以由来定义。...Emacs 最初被设计为编辑语言 TECO 的集,后被移植为 Lisp 的一种方言 Emacs Lisp。Vim也允许用户录制和播放简单的键盘

1.6K20

Emacs 折腾记

,看起来,Lisp 是不二之选。...最大的不适应就是以前那些用得飞起的编辑模式和简洁熟悉的快捷键不好使了,需要切换到频繁的 Ctrl+ Alt+ 各种组合键去,以前就听说过有 Evil 这么个东西,试了一下发现这货还真是强大,常用的编辑模式、快捷键、命令,甚至和正则表达式等等操作都模拟得很好...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...本来什么也不用配置的情况下 M-x ielm 就能进入一个 Emacs Lisp 的 REPL,但是它与 Common Lisp 毕竟还是有区别,所以还是另配置一个。...在 ~/.emacs 文件里加上: M-x slime 就可以进入到 REPL 进行 Common Lisp 的学习了。

1.3K20

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

在读取期运行代码,使得用户可以重新调整(reprogram)Lisp的语法;在编译期运行代码,则是Lisp的工作基础;在运行期编译代码,使得Lisp可以在Emacs这样的程序中,充当扩展语言(extension...这可能听起来很怪异,但是对于Lisp语言却是再普通不过。最常用的做法就是使用。 术语""在Lisp语言中,与其他语言中的意思不一样。...Lisp无所不包,它既可能是某样表达式的缩略形式,也可能是一种新语言的编译器。如果你想真正地理解Lisp语言,或者想拓宽你的编程视野,那么你必须学习。...就我所知,(采用Lisp语言的定义)目前仍然是Lisp独有的。一个原因是为了使用,你大概不得不让你的语言看上去像Lisp一样古怪。...Common Lisp的写法如下:   (defun foo (n)     (lambda (i) (incf n i))) Ruby的写法几乎完全相同:   def foo (n)

1.2K60

Emacs 折腾记

历数现代 Lisp 方言的先进性,再者我也一直有学习一门函数式编程语言的想法,看起来,Lisp 是不二之选。...最大的不适应就是以前那些用得飞起的编辑模式和简洁熟悉的快捷键不好使了,需要切换到频繁的 Ctrl+ Alt+ 各种组合键去,以前就听说过有 Evil 这么个东西,试了一下发现这货还真是强大,常用的编辑模式、快捷键、命令,甚至和正则表达式等等操作都模拟得很好...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 的学习了。

1.8K10

各种编程语言对尾递归的支持

Common Lisp   测完Scheme,再来测Scheme的本家兄弟,另外一种Lisp——Common Lisp   先用Common Lisp实现add,因为Common Lisp将数据和过程用不同的命名空间...RESET   因为没有尾递归优化的规定,所以对于那种无限循环,Common Lisp只能选择迭代才能保证不崩栈,比如使用do。...但是似乎也改变了Lisp的味道,do显然此处只能在设计编译器、解释器的时候就得单独实现,虽然按理Lisp下这些都应该是,但是无论用如何将函数式编程映射为显示的迭代,因为尾clisp递归优化不支持,则无法和系统提供的...sbcl是Common Lisp的另外一个实现,在这个实现中,我们使用第一个add函数的版本,没有发生崩栈。...也终于给了我们一个更为靠谱的Common Lisp的实现。

2.6K20

Lisp的本质(The Nature of Lisp)学习思考

而且, Lisp没有语义约束, 你可以构造任何数据结构, 只要你原意。 Lisp通过(macro)来做元编程。我们写一组来把任务列表(to-do list)转换为专用领域语言。...的工作方式和函数类似。主要的差别是, 的参数在代入时不求值。...例如, 上面曾经将过的C的求三次方的, 用Lisp来写是这样子: (defmacro triple (x) `(+ ~x ~x ~x)) (译注: 在Common Lisp中, 此处的单引号应当是反单引号..., 意思是对表不求值, 但可以对表中某元素求值, 记号~表示对元素x求值, 这个求值记号在Common Lisp中应当是逗号。...这里作者所用的记号是自己发明的一种Lisp方言Blaise, 和common lisp略有不同, 事实上, 发明方言是lisp高手独有的乐趣, 很多狂热分子都热衷这样做。

1.7K60

写本Racket入门书

但Paul Graham在「黑客与画家」中对lisp的无比推崇又让我一直如鲠在喉,不征服lisp仿佛自己始终没能窥探编程的奥义,那种感觉,估计和搞到了法国却搞不定约瑟芬的拿破仑一样一样的。...不少读者在看了我周二的文章「走进 racket(lisp) 的世界」后自豪地说自己的学校就开设了Racket的课程,作为编程入门语言,这真是羡煞死我。...能写点简单的程序,做个动画,画个图,用regex处理下文本,定义一些简单的语法聊以自慰(你可以打开github repo下的util/common.rkt自行观看,不要鄙视我)。...用Racket作图:主要讲Racket的plotting 6) 用Racket写作:主要讲scribble 7) Racket包管理:介绍raco及主要的Racket packages 8) 可爱的:...这是肉戏,也是lisp的精髓 9) 用来设计你的语言:假象一门语言,用Racket实现 10) 延迟计算:讲讲continuation,延伸到concurrency 11) 用Racket编写服务器程序

2.3K80

Clojure 学习入门(1)—— 学习资料

Clojure(发音类似"closure",['kləʊʒə(r)])是一套现代的Lisp语言的动态语言版,它是一个函数式多用途的语言,其语法和其他的Lisp一样,都是建立在 S-expression...与其他Lisp一样,Clojure认为代码即数据,同时有复杂的系统。 Clojure 的理念和特性 Clojure是什么,为什么有人要学这门语言?...Clojure 是完全的,真正意义上的神圣的lisp语言的一个方言。 lisp语言因为其无以伦比强大能力和几乎无穷的表达力而获得了盛誉,Clojure自然也不例外。...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

1.3K10

不管是嵌套 XML,还是 Lisp 嵌套括号,还是 XXX 的 Map 数据结构,一切都是树形结构——映射。Lisp的本质(The Natur

而且, Lisp没有语义约束, 你可以构造 任何数据结构, 只要你原意。 Lisp通过(macro)来做元编程。我们写一组来把任务列表(to-do list)转换为专用领 域语言。...例如, 上面曾经将过的C的求三次方的, 用Lisp来写是这样子: (defmacro triple (x) `(+ ~x ~x ~x)) (译注: 在Common Lisp中, 此处的单引号应当是反单引号..., 意思是对表不求值, 但可以对 表中某元素求值, 记号~表示对元素x求值, 这个求值记号在Common Lisp中应当是逗号。...这里作者所用的记 号是自己发明的一种Lisp方言Blaise, 和common lisp略有不同, 事实上, 发明方言是 lisp高手独有的乐趣, 很多狂热分子都热衷这样做。...has many different dialects (the most popular of which are Common Lisp and Scheme).

1.3K20

深入浅出 Babel 下篇:既生 Plugin 何生 Macros

,如 Rust、Nim、Julia、Elixir,它们是如何解决技术问题, 实现类Lisp系统的?...所以反过来推导,之所以C语言需要,正是因为C语言的表达能力太弱了。 语法扩展式 真正的起源于Lisp. 这个得益于Lisp语言本身的一些特性: ? 它的语法非常简单。...这种数据即程序、程序即数据的概念,使得Lisp可以轻松地自定义. 不妨来看一下Lisp定义的示例: ; 使用defmacro定义一个nonsense, 接收一个function-name参数....is good" 对于Lisp而言,有点像一个函数, 只不过这个函数必须返回一个quoted数据; 当调用这个时,Lisp会使用unquote函数将返回的quoted数据转换为程序。...Lisp的灵活性得益于简单的语法(S-表达式可以等价于它的AST),对于复杂语法的语言(例如Javascript),要实现类似Lisp就难得多.

1.5K31

Lisp学习--Windows下面的开发环境搭建

很久以前,就准备学习Lisp,但是遇到不少困难,社区太凌乱,也一直很犹豫,直到看了《Common Lisp - 想说爱你不容易》,想看看Common Lisp怎么样,之前都是拿Lisp的方言Schemel...正好有一篇Windows下如何安装使用CLISP的文章《Lisp语言: 在Windows下搭建CLisp环境》,于是在官网下载了一个安装程序 http/SF     (sources and win32...现在,可以开始Common Lisp的学习之旅了,比如写第一个函数: ? 全选文字,右键菜单,发送到Lisp执行,就得到了结果4,很方便。 有了这个,大家还觉得学习Lisp很复杂么?...参考: 推荐另外一种Lisp环境 AllegroCL ,它有图形化的编程环境,可以开发窗体应用程序,请参考文章 Windows环境下学习Lisp和Scheme的两大利器 (http://seagate.iteye.com

2.9K60

Emacs Lisp

前言Lisp 是一门很古老的语言LISP 是具有悠久历史的计算机编程语言家族,有独特和完全括号的前缀符号表示法,起源于1958年,是现今第二悠久而仍广泛使用的高级编程语言,只有 FORTRAN 编程语言比它更早一年...,LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKIEmacs LispLisp 的一个分支Emacs Lisp...,一种直译式的脚本语言,为LISP的方言之一,GNU Emacs与XEmacs文字编辑器都使用这个编程语言来扩展它们的功能,它的直译器是以C语言来实作的,它受到Maclisp的影响很大,但是跟Common...Lisp与Scheme有所不同最近我迷上了 Emacs所以顺藤摸瓜,竟然搭进去了一门语言万万没想到,为了了解一个编辑器,竟然搭进去了一门语言好在这门语言结构比较简单清晰以致于可以用 15 分钟入个门Tip...: 这一篇纯属于摘抄,不是原创,只是好东西忍不住拿出来分享,如果原作者有意见,可以随时联系我,下线此文章,我完全尊重原作者的意见原文,请参考 Emacs Lisp 15 分钟入门

59340

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

3、Gisp:Gisp 是一个使用 Go 语言编写的 Lisp 解释器,它支持基本的 Lisp 语法和函数,并提供了一些扩展功能,如 Go 函数和类型的调用。...它支持动态类型、高阶函数、闭包、扩展等 Lisp 特性,并能够直接调用 Go 语言的函数和方法。...6、Golo:Golo 是一个基于 Go 语言实现的 Lisp 解释器。它支持大多数的 Lisp 特性,包括扩展和动态类型。...与上述相比较,Golo 是一个更加复杂和功能更为丰富的 Lisp 方言,其语法和特性与 Common Lisp 有很多相似之处。...它支持静态类型、多重继承、泛型、扩展等特性,并且具有内置的模块系统和 REPL(交互式解释器)。

1.3K51
领券