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

如何在Emacs lisp中遍历文字列表?

在Emacs Lisp中遍历文字列表可以使用循环结构和递归函数来实现。下面是一个示例代码:

代码语言:txt
复制
(defun traverse-list (list)
  "遍历文字列表"
  (while list
    (message "%s" (car list))
    (setq list (cdr list))))

(traverse-list '("apple" "banana" "cherry"))

上述代码定义了一个名为traverse-list的函数,该函数接受一个文字列表作为参数。在函数体内部,使用while循环结构来遍历列表。while循环会在列表不为空的情况下执行循环体内的代码。循环体内使用message函数打印当前列表元素的值。然后使用setq函数将列表指针指向下一个元素,以便进行下一次循环。

你可以调用traverse-list函数并传入一个文字列表作为参数,例如'("apple" "banana" "cherry")。函数将会依次打印出列表中的每个元素。

请注意,这只是一个简单的示例代码,你可以根据实际需求进行修改和扩展。另外,关于Emacs Lisp的更多信息和学习资源,你可以参考Emacs Lisp官方文档

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

相关·内容

何在 Python 迭代地遍历两个列表

在 Python 迭代地遍历两个列表并同时进行操作是一种常见的需求,可以通过多种方法实现,包括使用内建函数 zip(),列表推导式,以及更高级的迭代器和生成器。...当你有两个或更多的列表需要同时遍历时,zip() 函数能够让你轻松地实现这一目的。每次迭代它会从每个可迭代对象取出一个元素,将它们组合成一个元组。...list1 和 list2 相应元素的组合:1-a, 2-b, 3-c使用 enumerate() 和 zip() 处理带索引的遍历在某些情况下,你可能需要在遍历两个列表的同时,保留元素的索引。...结合生成器实现高效遍历对于大型列表,使用生成器可以节省内存,因为生成器不会像列表推导式那样一次性加载所有元素到内存。通过定义一个生成器函数,可以在遍历时动态地产生每对元素,这对处理大量数据非常有效。...结论在 Python ,有多种方法可以同时遍历两个列表并进行操作。选择哪种方法取决于具体需求,比如列表的大小、是否需要处理不等长的列表、以及是否关心内存使用情况。

25100

Emacs 28 新特性介绍

现任 Emacs 维护者 Eli Zaretskii 在 9 月 30 号通过邮件列表[1]宣布 emacs-28 分支已经创建出,这意味着 28 版本的大功能已经 ready,不会再有大改动,但距离正式发版还要一段时间...这篇文章就来介绍 Emacs 28 ,笔者个人觉得比较实用的功能,完整列表可参考 NEWS[3] ( M-x view-emacs-news ),最后会介绍如何在 macOS 上编译。...positional 参数已经被淘汰 编译方式 看了上面那么多新功能,读者可能已经按捺不住内心的喜悦,这里就来介绍如何在 macOS 编译 28 版本,其他操作系统方式类似。.../i-basic.el#L346 [11] hierarchy.el: https://github.com/emacs-mirror/emacs/blob/emacs-28/lisp/emacs-lisp.../hierarchy.el [12] shorthands.el: https://github.com/emacs-mirror/emacs/blob/emacs-28/lisp/emacs-lisp

91230

Emacs Lisp

LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKI Emacs LispLisp 的一个分支 Emacs Lisp...,一种直译式的脚本语言,为LISP的方言之一,GNU Emacs与XEmacs文字编辑器都使用这个编程语言来扩展它们的功能,它的直译器是以C语言来实作的,它受到Maclisp的影响很大,但是跟Common...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...;; Lisp中使用括号构造列表,使用setq给变量赋值。...函数对列表的把列表的每一个元素分别取出来,赋给hello函数 (mapcar 'hello list-of-names) ;; 重新定义greeting函数,在一个新的,清空的buffer,对list-of-names

2.3K40

Emacs 之光的成长历程

更令人好奇的是,嘉宾如何在短期内熟悉 Emacs 源码并为之贡献多个 patch,相信通过嘉宾的学习、贡献经历,可以给听众打开 Emacs 源码的神秘面纱,让更多用户参与到 Emacs 的贡献,一个多小时的分享...,句号后两个空格 • 注释用的是 C 风格的 /* */ ,而不是 C++ 的 // • 函数名后面跟一个空格,再是括号 •读 Emacs 源码技巧 • lisp.h[12] 里面有 C 如何调用 ELisp...的示例 • 去 devel[13] 邮件列表咨询,还可以练习英文表达能力 • ccls[14] + grep + ctags • 通过搜索相关功能来探究其个函数的用法 •嘉宾的分享 • aggressive-indent-mode...buffer: https://github.com/emacs-mirror/emacs/commit/7c83e605ab84e8b62254c55f347abc8aa9c6057b [12] lisp.h...: https://github.com/emacs-mirror/emacs/blob/master/src/lisp.h [13] devel: https://lists.gnu.org/archive

35910

Emacs Lisp

LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKI Emacs LispLisp 的一个分支 Emacs Lisp...,一种直译式的脚本语言,为LISP的方言之一,GNU Emacs与XEmacs文字编辑器都使用这个编程语言来扩展它们的功能,它的直译器是以C语言来实作的,它受到Maclisp的影响很大,但是跟Common...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...;; Lisp中使用括号构造列表,使用setq给变量赋值。...函数对列表的把列表的每一个元素分别取出来,赋给hello函数 (mapcar 'hello list-of-names) ;; 重新定义greeting函数,在一个新的,清空的buffer,对list-of-names

2.2K30

一名Clojurian的Emacs配置

俗话说,工欲善其事必先利其器,完善开发工具与我而言是一件愉快的事情,所以想把经验集结成文字,便有了这篇文章。这篇文章不会介绍太多花式或有深度的emacs配置,更多是摸索学习的过程,其中充满了乐趣。...这就不得不提起Clojure这门lisp方言,出于对lisp和函数式编程的痴迷,我选择了基于JVM的Clojure作为自己的偏好语言,而emacs天生为lisp而生。..."http://melpa.org/packages/")的点号(dot)表示法也比较奇怪,其实这是lisp的Dotted pair表示法,用法和普通的列表类似,但因为是pair的缘故,你可以使用(...按照惯例,我在~/.emacs.d目录下建立一个lisp目录用于存放所有自定义的模块文件,随后在init.el中加入下面这句代码,意在把lisp目录加到emacs的加载路径列表里。...(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) 看似,接下来就可以在每个独立的模块文件编写各种功能的配置

2.7K20

Emacs Lisp2

;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区,;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下,;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...\n\nI am %s." your-name from-name))(other-window 1)));; 执行这个函数(greeting "Bastien")== 列表和综合实例 ==;; Lisp...;; 如果想要得到列表的第一个元素,可以使用car函数(car list-of-names);; 如果想要得到列表的除第一个元素以外的其它元素,可以使用cdr函数(cdr list-of-names...);; 以后push函数可以在列表的头部插入新的元素,所以下面的命令将改变list-of-name中元素的个数(push "Stephanie" list-of-names);; mapcar函数对列表的把列表的每一个元素分别取出来

95240

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

这个比较小众的编程到底是什么~ ————————————————————————— LISP(全名LISt Processor,即列表处理语言),由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言...LISP有很多种方言,各个实现的语言不完全一样。1980年代Guy L. Steele编写了Common Lisp试图进行标准化,这个标准被大多数解释器和编译器所接受。...在Unix/Linux系统,还有一种和Emacs一起的Emacs Lisp(而Emacs正是用Lisp作为扩展语言进行功能扩展的)非常流行,并建立了自己的标准。...Lisp的表达式是一个原子(atom)或表(list),原子(atom)又包含符號(symbol)與數值(number);表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号:...在 Lisp 我们习惯用原子 t 表示真,而用空表 () 表示假。

2.2K20

Emacs Tree-sitter 初体验

现在较为流行的编辑器, neovim 都已支持 ts 作为解析库。...在 Emacs ,之前都是采用正则的方式去解析语言的语法结构,这种方式虽然大多数情况是没有问题的,但主要有以下几个问题: 正则比较消耗 CPU,导致对大文件进行高亮时容易导致 Emacs 卡主,参见:...Regexp Problems (GNU Emacs Lisp Reference Manual)[2] 对于有些语法结构,正则并不能很好的工作,参见:The true power of regular...对应的 mode 来使用,比如 c-mode 对应的 c-ts-mode ,Emacs 为不同的语言重新实现了一个以 ts-mode 结尾的新 mode,在 29 版本,主要有如下 12 个: 12...Lisp Reference Manual): https://www.gnu.org/software/emacs/manual/html_node/elisp/Regexp-Problems.html

97310

Emacs 折腾记

我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,历数现代 Lisp 方言的先进性,再者我也一直有学习一门函数式编程语言的想法...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...在 ~/.emacs 文件里添加: 这样自动补全之类的就没有问题了。 然后在如何运行当前 py 文件这件事上遇到些问题。在 Vim 我一直是用 :!...python % 来运行的,但是在 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入...在 ~/.emacs 文件添加 这个 3 表示在距离屏幕上下边缘还有 3 行的时候再移动光标即自动滚屏,方便随时能看到当前编辑行的上下文,可以根据自己的使用习惯调整。

1.3K20

几种编程语言的优缺点

Emacs 是天才。连非技术人员都爱 Emacs。我现在就是在 Emacs 里打这些文字。我绝不情愿在任何其他地方打字。...我们(当时)找不到 Emacs-Lisp 足够牛的人把 Mailman 继续搞下去。今天这应该不难了; 亚马逊现在到处都是 Emacs Lisp 的黑客。...他们当时没有足够多的 Emacs-Lisp 的人。...当其他的那些语言(尤其是 Lisp 和 Smalltalk)都想假装操作系统并不存在,列表(Lisp 的)和对象(Smalltalk 的)就是把屎搞出来的唯一存在,Perl 却走了截然相反的路子。...我根本不能想象他们以前能打字打得足够快,英文字母只有 26 个,他们却有上万个字。但是 Emacs 几年前支持多字节字符了,所以我猜他们现在打字速度他妈的快多了。

3.4K110

Emacs 折腾记

我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,还有垠神也撰文《Lisp 已死,Lisp 万岁!...在搜索网友们对此的经验之谈的时候,自然而然地,目光逐渐聚集到 Emacs 这个使用 Emacs Lisp 作为扩展语言的神的编辑器上。...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...添加 sbcl 安装路径。...python % 来运行的,但是在 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入

1.8K10

亚马逊工程师论各种编程语言的优缺点

Emacs 是天才。连非技术人员都爱 Emacs。我现在就是在 Emacs 里打这些文字。我绝不情愿在任何其他地方打字。...我们(当时)找不到 Emacs-Lisp 足够牛的人把 Mailman 继续搞下去。今天这应该不难了; 亚马逊现在到处都是 Emacs Lisp 的黑客。...他们当时没有足够多的 Emacs-Lisp 的人。...当其他的那些语言(尤其是 Lisp 和 Smalltalk)都想假装操作系统并不存在,列表(Lisp 的)和对象(Smalltalk 的)就是把屎搞出来的唯一存在,Perl 却走了截然相反的路子。...我根本不能想象他们以前能打字打得足够快,英文字母只有 26 个,他们却有上万个字。但是 Emacs 几年前支持多字节字符了,所以我猜他们现在打字速度他妈的快多了。

2.2K80

如何快速使用 ELisp 进行插件编写

要知道 Lisp 的一重要提高生产效率的工具是 REPL,没有 demo 让我复制,我怎么在 REPL 里测试?...而且程序员都很懒、很忙,去仔细看 manual 不现实,而且 Emacs 的 manual 我感觉有些“重”了,文字太多了,看的累,我需要的仅仅是个很 copy 的示例,然后再根据我的需求改改就好了,就行...clojuredocs 那样,比如 reduce[2] 页面: 幸好在 Emacs China TG 组交流“心得”后,发现了 elisp-demos[3] 插件,可以在 helpful 页面展示函数的用法...: 最后,再推荐一个教程,供有其他 Lisp 经验的程序员快速使用 ELisp。...• https://github.com/chrisdone/elisp-guide 引用链接 [1] feature: https://github.com/clojure-emacs/cider/pull

74620

操作系统Emacs是如何沦落为一代编辑器的?

开始之前,先让我们知道今天的Emacs是长怎样的? ? 不不,这是它的新Logo,我的意思是它的用途。 什么是Emacs? Emacs是一种功能超强的文本处理程序,或者文本编辑器。...基础部分是使用C语言编写的,其他部分是用Emacs Lisp编写的。深层次的话,C语言构成了emacs的底层,包括Emacs Lisp的解释器。...而Emacs Lisp则是负责了Emacs Lisp的建筑物上层,也就是包括我们平时用的扩展、界面等。...从架构上来说,它很不错——你可以在很多的架构书上看到相关的介绍,《代码之美》、《架构之美》等等。 ?...GNU编译器套装(GCC)、GNU的C库(glibc)、以及GNU核心工具组(coreutils),另外也是GNU除错器(GDB)、GNU二进制实用程序(binutils)的GNU Bash shell

1.9K80

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

Lisp类语言Common Lisp和Scheme有更精巧的宏系统: 宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。...程序员的文本编辑器Emacs(“编辑宏”Editing MACroS的简称)是沿用这一思想的产物。事实上,大多数编辑器是由宏组成的。...Emacs 最初被设计为编辑语言 TECO 的宏集,后被移植为 Lisp 的一种方言 Emacs Lisp。Vim也允许用户录制和播放简单的键盘宏。...宏语言并未在通用编程中广泛使用,但在文本处理程序应用普遍。...其它的包括宏语言的项目,OpenOffice.org,故意从其宏语言中排除了一些功能(:自动执行)以避免破坏程序。然而,这一特性在很多事务受到欢迎。

1.6K20

编程语言中那些有趣的命名

这种计算机科学的“饶舌”现象叫作递归缩写。 递归缩写(Recursive acronym)即递归首字缩写,是一种在全称递归引用它自己的缩写。      ...最早的递归缩写命名的实例应该是1977年或1978年出现的TINT编辑器,其命名为“TINT Is Not TECO”(TINT不是文字编辑器和修正器),它是一个MagicSix的编辑器。...这又启发了麻省理工大学的两个Lisp Machine 编辑器的命名,一个叫做 EINE (“EINE Is Not Emacs“,EINE不是 Emacs),另一个是 ZWEI (“ZWEI Was EINE...npm、GNU一样,许多递归缩写包括否定语,通常用来指出这个缩写指代的事物 a 不是与另一个事物 b 相类似(但事实上,这个事物 a 通常与 b 非常相似甚至是 b 的衍生品)。      ...PNG的名称来源于“可移植网络图形格式(Portable Network Graphic Format,PNG)”, EMACSEMACS Makes A Computer Slow,其自我调侃的意味就太明显了

1.1K20
领券